Vinnaren i pepparkakshustävlingen!
2011-11-30, 12:44
  #1
Medlem
Hej FB:are!

Jag arbetar med en hemsida och behöver hjälp med en sak.

Jag har gjort att man kan ladda upp filer som hamnar i en mapp som jag valt att döpa för upload och vill nu kunna göra en sökfunktion där man kan söka i den mappen för att sedan ladda ner filen.

Min kod är väldigt simpel och ska förbättra den, göra den säkrare, etc.
Här är den iaf!

PHP:
Kod:
<?php

error_reporting
(0);
if(
$_POST['upload'] == "1")
    {
    
$to "uploads/".$_FILES['file']['name'];
    
move_uploaded_file($_FILES['file']['tmp_name'], $to);
    echo 
"Uploaded!";
    }
    
?>

HTML-kod:
<form method="post" enctype="multipart/form-data">
<input type="hidden" name="upload" value="1">
<input type="file" name="file">
<input type="submit" value="Upload">
</form>

Tackar i förhand!
Citera
2011-11-30, 12:52
  #2
Medlem
Benzoftws avatar
Till att börja med, för att få tag på alla filnamn som finns i mappen kan du göra så här:

Kod:
$results = array();

        
$handler opendir(path/till/dir);

        while (
$file readdir($handler)) 
        {
            if (
$file != "." && $file != ".."
            {
                
$results[] = $file;
            }

        } 

Då har du alla filnamn i en array. Sen är det bara jämföra userinput med arrayen osv osv

Det är ett sätt att göra det på, finns säkert flera.
Citera
2011-11-30, 12:58
  #3
Medlem
Citat:
Ursprungligen postat av Benzoftw
Till att börja med, för att få tag på alla filnamn som finns i mappen kan du göra så här:

Kod:
$results = array();

        
$handler opendir(path/till/dir);

        while (
$file readdir($handler)) 
        {
            if (
$file != "." && $file != ".."
            {
                
$results[] = $file;
            }

        } 

Då har du alla filnamn i en array. Sen är det bara jämföra userinput med arrayen osv osv

Det är ett sätt att göra det på, finns säkert flera.

Fint! hjälpen uppskattas! har provat koden och fungerar bra.

Uppskattar ifall folk kommer med fler metoder! Även hur man gör filerna nedladdningsbara från mappen!
Citera
2011-11-30, 12:59
  #4
Medlem
Benzoftws avatar
Kom på ett ännu snabbare sätt,

Kod:
$results = array();

        
$handler opendir(path/till/dir);

        while (
$file readdir($handler)) 
        {
            if (
$file == "userinput"
            {
                
$results[] = $file;
            }

        } 

osv osv
Citera
2011-11-30, 13:06
  #5
Medlem
Kod:
$search 'copy';
if( 
$match preg_grep"/$search/i"glob'*' ) ) )
{
    
var_dump$match );

Citera
2011-11-30, 13:11
  #6
Medlem
Citat:
Ursprungligen postat av Benzoftw
Kom på ett ännu snabbare sätt,

Kod:
$results = array();

        
$handler opendir(path/till/dir);

        while (
$file readdir($handler)) 
        {
            if (
$file == "userinput"
            {
                
$results[] = $file;
            }

        } 

osv osv

Nu är jag då inte världsbäst på detta men försöker lära mig. ska det verkligen stå userinput eller ska man byta ut den koden mot något annat? förstår att den koden är till för att min search form ska kunna hitta och endast visa den filen jag sökte efter men lite "noob" guides eller förklarningar uppskattas också, då jag som sagt är ganska ny till php!
Citera
2011-11-30, 14:21
  #7
Medlem
Benzoftws avatar
Citat:
Ursprungligen postat av Rumpsmek
Nu är jag då inte världsbäst på detta men försöker lära mig. ska det verkligen stå userinput eller ska man byta ut den koden mot något annat? förstår att den koden är till för att min search form ska kunna hitta och endast visa den filen jag sökte efter men lite "noob" guides eller förklarningar uppskattas också, då jag som sagt är ganska ny till php!

Sorry, kanske var lite oklar

Kod:
if ($file == "userinput"

Koden ovan jämför filnamnet i directoryt med vad som nu står på andra sidan == tecknen Så du kan hardkoda det till ($file == "blabla") eller så kan du jämföra det med ($file == $variabelmedsöktermen)
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback