PHP $_FILES plusieurs fichier téléchargement de problème
J'ai un petit problème avec le téléchargement de plusieurs fichiers en PHP ,
j'ai ce formulaire html:
<form method="post" action="upload.php" enctype="multipart/form-data">
<input type="file" name="myfile[]" />
<input type="submit" />
</form>
et c'est le upload.php :
<?php print_r( $_FILES ); ?>
quand j'envoie un fichier il me montre ceci:
Array
(
[myfile] => Array
(
[name] => Array
(
[0] => Krw_Qe4QKmI.mp3
)
[type] => Array
(
[0] =>
)
[tmp_name] => Array
(
[0] =>
)
[error] => Array
(
[0] => 1
)
[size] => Array
(
[0] => 0
)
)
)
so far so good.
le problème commence quand je mettre à jour mon formulaire :
<form method="post" action="upload.php" enctype="multipart/form-data">
<input type="file" name="myfile[]" />
<input type="file" name="myfile[]" />
<input type="submit" />
</form>
maintenant , quand j'ai envoyer 2 fichiers , il me montre ceci :
Array
(
)
donc , quel est le problème ici?
merci , Mor.
Vous avez une erreur dans le premier tableau vous montrer (avec le code
1
). Voir ici pour ce qu'il signifie: php.net/manual/en/features.file-upload.errors.phpOriginalL'auteur some Folk | 2011-09-18
Vous devez vous connecter pour publier un commentaire.
Beaucoup de suggestions ici. Je vais lui donner un aller. Ceci est basé sur @Pekka 's commentaire.
Je vois que vous faites des tests avec des fichiers mp3, qui dépasse probablement PHP limite de téléchargement. C'est parce que dans votre premier exemple, vous avez un message d'erreur de téléchargement de code 1:
The uploaded file exceeds the upload_max_filesize directive in php.ini.
. Donc même votre poing de téléchargement n'a pas fonctionné. Un téléchargement réussi toujours a 0 comme code d'erreur.Modifier vous php.ini avec
upload_max_filesize = 10M
(ou20M
, ou300M
; prudent à ce sujetM
- ce qui signifie mégaoctets - comme omis, apporte beaucoup de maux de tête.J'proposer des tests avec des fichiers plus petits, comme je vois que vous avez une limite de 2M pour le téléchargement.
lecture.
OriginalL'auteur nevvermind
Je serais prêt à parier que vous avez dépassé
post_max_size
et PHP simplement ignoré les fichiers téléchargés.C'est 8 mo par défaut. Si vous essayez de charger un fichier de 5 mo tout va fonctionner. Si vous essayez de télécharger 2 fichiers de 5 mo, il exceeeds 8MB et PHP ignore les données publiées.
Essayez d'augmenter la valeur de post_max_size dans votre php.ini.
activer log_errors et de regarder votre serveur error_log
im la vérification jusqu'à maintenant , je peux voir si j'ai télécharger 2 fichiers de petite taille, il fonctionne, mais avec de plus gros fichiers il l'habitude de
j'exécute mon code sur WAMP 2 32 bits , c'est ce qui est sur mon ini ;;;;;;;;;;;;;;;; ; les Uploads de Fichier ; ;;;;;;;;;;;;;;;; ; Que ce soit pour permettre l'adresse HTTP de téléchargement de fichiers. ; php.net/file-uploads file_uploads = on ; le répertoire Temporaire pour HTTP téléchargé des fichiers (système utilisera par défaut, si non spécifiées;). ; php.net/upload-tmp-dir upload_tmp_dir = "c:/wamp/tmp" ; taille Maximale autorisée pour les fichiers téléchargés. ; php.net/upload-max-filesize upload_max_filesize = 2M
OriginalL'auteur Arnaud Le Blanc
Vérifier votre
max_file_uploads
-- est-il plus que 1?OriginalL'auteur Jon
Le php.fichier ini doit avoir quelque chose comme ceci:
Modifier les valeurs de
upload_max_filesize
, puis redémarrez le serveurvous avez besoin de modifier votre propre php.ini, il n'est pas bon de téléchargement de quelqu'un d'autre
c'est bizarre, vous pouvez copier & coller le code dans vous php.fichier ini et c'est le contenu de la php.ini recommander j'ai php 5.2.17
OriginalL'auteur tttony
Le Problème, c'est votre
name="myfile[]"
attribut de votre Élément.Vous ne pouvez pas le referer plus tard en PHP à votre fichier, si vous n'avez pas d'identifiant pour elle. Le PHP-Documentation vous donne le même conseil:
http://www.php.net/manual/en/features.file-upload.multiple.php
Donc changer le nom de "myfile1" et "myfile2" (ou certains de meilleur nom ;)) devrait résoudre votre problème.
name[]
.OriginalL'auteur breiti
De faire plusieurs fichiers à la fois, essayer de donner un indice comme ceci:
OriginalL'auteur Shark8
J'ai eu le même problème.. Tous mes efforts ont été vains, mais finalement j'ai trouvé une très bonne note au Manuel PHP. C'est simple mais qui me convenait parfaitement...
Suivez ce lien pour la note en entier, il existe une fonction pour réorganiser les multiples télécharger le fichier de tableau dans un format facile à utiliser.
http://php.net/manual/en/features.file-upload.multiple.php
OriginalL'auteur Dilhan Maduranga