Handledningskod som låter besökare på din webbplats ladda upp filer

01

av 06

HTML-formuläret

Om du vill tillåta besökare på din webbplats att ladda upp filer till din webbserver, måste du först använda PHP för att skapa ett HTML-formulär som låter människor ange vilken fil de vill ladda upp. Även om koden är samlad senare i den här artikeln (tillsammans med några varningar om säkerhet), bör den här delen av koden se ut så här:

Välj en fil:

Detta formulär skickar data till din webbserver till filen med namnet ”upload.php”, som skapas i nästa steg.

[8, 1]

02

av 06

Ladda upp filen

Själva filuppladdningen är enkel. Denna lilla kodbit laddar upp filer som skickas till den via ditt HTML-formulär.
$target = ”ladda upp/”;

$target = $target . basnamn( $_FILES ['name']) ;

$ok=1; if(move_uploaded_file($_FILES ['tmp_name'], $target))

{

echo ”Filen”. basnamn( $_FILES['uploadedfile']['name']). ”har laddats upp”;

}
annat {
echo ”Tyvärr, det uppstod ett problem när du laddade upp din fil.”;
}

?>

Den första raden $target = ”ladda upp/”;

är där du tilldelar mappen där filerna laddas upp. Som du kan se på den andra raden är den här mappen relativ till upload.php fil. Om din fil finns på www.yours.com/files/upload.php, skulle den ladda upp filer till www.yours.com/files/upload/yourfile.gif. Kom ihåg att skapa den här mappen.

Sedan flyttar du den uppladdade filen dit den hör hemma med hjälp av move_uploaded_file . Detta placerar den i katalogen som anges i början av skriptet. Om detta misslyckas får användaren ett felmeddelande; annars får användaren veta att filen har laddats upp.

03

av 06

Begränsa filstorleken

Du kanske vill begränsa storleken på filer som laddas upp till din webbplats. Om du antar att du inte ändrade formulärfältet i HTML-formuläret – så det heter fortfarande ”uppladdat” – kontrollerar den här koden för att se storleken på filen. Om filen är större än 350k får besökaren felet ”filen för stor” och koden sätter $ok till lika med 0.

if ($uploaded_size > 350000)
{

eko ”Din fil är för stor.

”;

$ok=0;
}

Du kan förändra storleksbegränsningen att vara större eller mindre genom att ändra 350000 till ett annat nummer. Om du inte bryr dig om filstorlek, lämna dessa rader utanför.

04

av 06

Begränsa filer efter typ

Att sätta begränsningar för vilka typer av filer som kan laddas upp till din webbplats och blockera vissa filtyper från att laddas upp är båda klokt.

För Den här koden kontrollerar till exempel att besökaren inte laddar upp en PHP-fil till din webbplats. Om det är en PHP-fil får besökaren ett felmeddelande och $ok sätts till 0.

if ($uploaded_type ==”text/php”)
{

eko ”Inga PHP-filer

”;

$ok=0;

}

I det här andra exemplet tillåts endast GIF-filer laddas upp till webbplatsen, och alla andra typer får ett felmeddelande innan $ok ställs in på 0.

if (!($uploaded_type==”image/gif”)) {
eko ”Du får bara ladda upp GIF-filer.
”;

$ok=0;

}

Du kan använda dessa två exempel för att tillåta eller neka specifika filtyper.

05

av 06

Få alltid att falla på plats

Lägger du ihop allt får du detta:

$target = ”ladda upp/”;
$target = $target . basnamn( $_FILES ['name']) ;

$ok=1;

//Detta är vårt storleksskick

if ($uploaded_size > 350000)

{
eko ”Din fil är för stor.
”;

$ok=0;

}

//Detta är vårt begränsningsvillkor för filtyp
if ($uploaded_type ==”text/php”)

{

echo ”Inga PHP-filer

”;

$ok=0;
}

//Här kontrollerar vi att $ok inte var satt till 0 av ett fel
if ($ok==0)

{

Echo ”Tyvärr, din fil laddades inte upp”;
}

//Om allt är ok försöker vi ladda upp det

annan
{

if(move_uploaded_file($_FILES ['tmp_name'], $target))

{

echo ”Filen”. basnamn( $_FILES['uploadedfile']['name']). ”har laddats upp”;

}
annan
{
eko ”Förlåt , det gick inte att ladda upp din fil.”;}
}

?>

Innan du lägger till den här koden på din webbplats måste du förstå säkerhetskonsekvenserna som beskrivs på nästa skärm.

06

av 06

Slutliga tankar om säkerhet

Om du tillåter filuppladdningar lämnar du dig själv öppen för folk som vill att lasta av oönskade saker. En klok försiktighetsåtgärd är att inte tillåta uppladdning av PHP-, HTML- eller CGI-filer som kan innehålla skadlig kod. Detta ger viss säkerhet, men det är inte säkert brandskydd.

Annan försiktighetsåtgärden är att göra uppladdningsmappen privat så att bara du kan se den. När du sedan ser uppladdningen kan du godkänna – och flytta den – eller ta bort den. Beroende på hur många filer du förväntar dig att ta emot kan detta vara tidskrävande och opraktiskt.

Detta skript förvaras förmodligen bäst i en privat mapp. Lägg den inte någonstans där allmänheten kan använda den, annars kan du få en server full av värdelösa eller potentiellt farliga filer. Om du verkligen vill att allmänheten ska kunna ladda upp till ditt serverutrymme, skriv i så stor säkerhet som möjligt.

Utvald video

Lämna ett svar

Relaterade Inlägg