Uppladdning av flera filer: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
Ingen redigeringssammanfattning
Ingen redigeringssammanfattning
 
Rad 1: Rad 1:
=== Ladda upp flera filer ===
Flera filer kan laddas upp genom att använda olika namn för inmatningen.
Det är också möjligt att ladda upp flera filer samtidigt och få informationen organiserad automatiskt i arrayer. För att göra detta måste du använda samma array-inlämningssyntax i HTML-formuläret som du gör med flera val och kryssrutor:
'''Exempel #1 Ladda upp flera filer'''
<pre>
<form action="file-upload.php" method="post" enctype="multipart/form-data">
  Skicka dessa filer:<br />
  <input name="userfile[]" type="file" /><br />
  <input name="userfile[]" type="file" /><br />
  <input type="submit" value="Skicka filer" />
</form>
</pre>
När formuläret ovan skickas in, kommer arrayerna `$_FILES['userfile']`, `$_FILES['userfile']['name']` och `$_FILES['userfile']['size']` att initialiseras.
Anta till exempel att filnamnen `/home/test/review.html` och `/home/test/xwp.out` skickas in. I detta fall skulle `$_FILES['userfile']['name'][0]` innehålla värdet `review.html`, och `$_FILES['userfile']['name'][1]` skulle innehålla värdet `xwp.out`. På samma sätt skulle `$_FILES['userfile']['size'][0]` innehålla filstorleken för `review.html`, och så vidare.
`$_FILES['userfile']['name'][0]`, `$_FILES['userfile']['tmp_name'][0]`, `$_FILES['userfile']['size'][0]` och `$_FILES['userfile']['type'][0]` sätts också.
'''Varning:'''
Inställningen `max_file_uploads` i konfigurationen fungerar som en gräns för antalet filer som kan laddas upp i en begäran. Du måste se till att ditt formulär inte försöker ladda upp fler filer i en begäran än denna gräns.
'''Exempel #2 Ladda upp en hel katalog'''
I HTML-filuppladdningsfält är det möjligt att ladda upp en hel katalog med attributet `webkitdirectory`. Denna funktion stöds i de flesta moderna webbläsare.
Med informationen från `full_path` är det möjligt att lagra de relativa sökvägarna, eller återskapa samma katalog på servern.
<pre>
<form action="file-upload.php" method="post" enctype="multipart/form-data">
  Skicka denna katalog:<br />
  <input name="userfile[]" type="file" webkitdirectory multiple />
  <input type="submit" value="Skicka filer" />
</form>
</pre>
'''Varning:'''
Attributet `webkitdirectory` är icke-standard och är inte på väg att bli en standard. Använd det inte på produktionssajter som är exponerade för webben: det kommer inte att fungera för alla användare. Det kan också finnas stora skillnader mellan implementationer, och beteendet kan förändras i framtiden.
PHP parserar endast den relativa sökvägsinformationen som skickas in av webbläsaren/användaragenten och vidarebefordrar den informationen till `$_FILES`-arrayen. Det finns ingen garanti för att värdena i `full_path`-arrayen innehåller en verklig katalogstruktur, och PHP-applikationen får inte lita på denna information.
= Sidslut =
= Sidslut =
Orginalhemsidan på Engelska :https://www.php.net/manual/en/features.file-upload.multiple.php
Orginalhemsidan på Engelska :https://www.php.net/manual/en/features.file-upload.multiple.php

Nuvarande version från 3 september 2024 kl. 13.47

Ladda upp flera filer

Flera filer kan laddas upp genom att använda olika namn för inmatningen.

Det är också möjligt att ladda upp flera filer samtidigt och få informationen organiserad automatiskt i arrayer. För att göra detta måste du använda samma array-inlämningssyntax i HTML-formuläret som du gör med flera val och kryssrutor:

Exempel #1 Ladda upp flera filer

<form action="file-upload.php" method="post" enctype="multipart/form-data">
  Skicka dessa filer:<br />
  <input name="userfile[]" type="file" /><br />
  <input name="userfile[]" type="file" /><br />
  <input type="submit" value="Skicka filer" />
</form>

När formuläret ovan skickas in, kommer arrayerna `$_FILES['userfile']`, `$_FILES['userfile']['name']` och `$_FILES['userfile']['size']` att initialiseras.

Anta till exempel att filnamnen `/home/test/review.html` och `/home/test/xwp.out` skickas in. I detta fall skulle `$_FILES['userfile']['name'][0]` innehålla värdet `review.html`, och `$_FILES['userfile']['name'][1]` skulle innehålla värdet `xwp.out`. På samma sätt skulle `$_FILES['userfile']['size'][0]` innehålla filstorleken för `review.html`, och så vidare.

`$_FILES['userfile']['name'][0]`, `$_FILES['userfile']['tmp_name'][0]`, `$_FILES['userfile']['size'][0]` och `$_FILES['userfile']['type'][0]` sätts också.

Varning: Inställningen `max_file_uploads` i konfigurationen fungerar som en gräns för antalet filer som kan laddas upp i en begäran. Du måste se till att ditt formulär inte försöker ladda upp fler filer i en begäran än denna gräns.

Exempel #2 Ladda upp en hel katalog

I HTML-filuppladdningsfält är det möjligt att ladda upp en hel katalog med attributet `webkitdirectory`. Denna funktion stöds i de flesta moderna webbläsare.

Med informationen från `full_path` är det möjligt att lagra de relativa sökvägarna, eller återskapa samma katalog på servern.

<form action="file-upload.php" method="post" enctype="multipart/form-data">
  Skicka denna katalog:<br />
  <input name="userfile[]" type="file" webkitdirectory multiple />
  <input type="submit" value="Skicka filer" />
</form>

Varning: Attributet `webkitdirectory` är icke-standard och är inte på väg att bli en standard. Använd det inte på produktionssajter som är exponerade för webben: det kommer inte att fungera för alla användare. Det kan också finnas stora skillnader mellan implementationer, och beteendet kan förändras i framtiden.

PHP parserar endast den relativa sökvägsinformationen som skickas in av webbläsaren/användaragenten och vidarebefordrar den informationen till `$_FILES`-arrayen. Det finns ingen garanti för att värdena i `full_path`-arrayen innehåller en verklig katalogstruktur, och PHP-applikationen får inte lita på denna information.


Sidslut

Orginalhemsidan på Engelska :https://www.php.net/manual/en/features.file-upload.multiple.php

PHP

Funktioner


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp.se som har sponsrat Linux.se med webserver.