2009-07-13 9 views
1

J'essaie d'écrire un script PHP qui peut télécharger plusieurs fichiers.Téléchargement de l'image ne fonctionne pas

for($i=0;$i<count($_FILES['uploadimg']['name']);$i++){ 
    $name = $_FILES['uploadimg']['name'][$i]; 
    $type = $_FILES['uploadimg']['type'][$i]; 
    $filepath = $_FILES['uploadimg']['tmp_name'][$i]; 
    $size = getimagesize($filepath); 
    $img = file_get_contents($filepath); 

    //insert into database 
} 

Le problème est que les variables ne sont pas remplies comme elles le devraient.

Lorsque je télécharger un jpeg « image.jpg », j'ai découvert que les variables ont les valeurs suivantes: (en remplaçant le code de base de données avec echo s et var_export s)

$name = 'image.jpg'; // good 
$type = ''; // not good 
$filepath = ''; // not good 
$size = false; // not good 
$img = false; // not good 

Je dois souligner que je réaliser $size et $img dépendent de $filepath étant un chemin de fichier valide.

Quelqu'un pourrait-il donner un aperçu de ce qui ne va pas ou de ce qui me manque? J'ai joué avec le code pendant un jour maintenant, et ne peux pas trouver une solution.

Mise à jour:

print_r($_FILES) sur 3 images: retours

Array (
    [uploadimg] => Array (
     [name] => Array (
      [0] => test1.jpg 
      [1] => test2.jpg 
      [2] => test3.jpg 
     ) 
     [type] => Array (
      [0] => image/jpeg 
      [1] => 
      [2] => image/jpeg 
     ) 
     [tmp_name] => Array (
      [0] => /tmp/phpkC6f2F 
      [1] => 
      [2] => /tmp/phpgFrPl8 
     ) 
     [error] => Array (
      [0] => 0 
      [1] => 1 
      [2] => 0 
     ) 
     [size] => Array (
      [0] => 238906 
      [1] => 0 
      [2] => 237308 
     ) 
    ) 
) 

Puis-je supposer alors cela signifie que l'image est trop grande?

Répondre

2

This question/answer peut être utile.

Édition - Cela ressemble à un problème de taille de fichier. Les deux fichiers qui ont travaillé ont des tailles d'environ 1,8 Mb et par défaut PHP a une limite de téléchargement de fichiers de 2 Mb. Je ne peux vous donner des conseils dans une perspective de Windows à ce sujet, mais je serais à la recherche dans PHP.ini à augmentation la upload_max_filesize et peut-être post_max_size settings.

Éditer 2 - Il ya une section sur PHP.net qui lists the error codes for uploading. Vous obtenez un 1 qui est:

UPLOAD_ERR_INI_SIZE 

Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini. 

Cela correspond à ce que j'ai dit dans ma première édition.

+0

Merci, cela explique beaucoup, surtout en conjonction avec la suggestion de Ross de faire une décharge et ce sont les résultats que j'ai maintenant posté. –

1

Tous ces fichiers sont-ils du même type? Pouvez-vous nous donner un var_dump des variables lors du téléchargement de quelques fichiers? Les variables de tous les téléchargements sont-elles vides ou juste certaines?

Par exemple, ce code:

retour cette sortie:

Array (
    [upload] => Array (
     [name] => Array (
      [0] => IMG_0005.jpg 
      [1] => IMG_0249.jpg 
      [2] => IMG_0007.JPG 
     ) 
     (...snip...) 
     [size] => Array ( 
      [0] => 1776529 
      [1] => 1902522 
      [2] => 798008 
     ) 
    ) 
) 

pour vérifier $_FILES['name']['error'] Se souvenir pour chaque fichier.

+0

J'ai posté les résultats, et je crois que cela indique que le problème est la taille du fichier. –