Warning: getimagesize() [function.getimagesize]: nom de fichier ne peut pas être vide message d'avertissement?
Jusqu'à récemment, j'ai été en utilisant du PHP pour télécharger des photos sur un site. Mais tout à coup, elle a commencé à déclencher toutes sortes de messages d'erreur.
- Je utiliser un formulaire sur action exécute le code suivant:
$uploaddir = "../../user_content/photo/";
$allowed_ext = array("jpeg", "jpg", "gif", "png");
if(isset($_POST["submit"])) {
$file_temp = $_FILES['file']['tmp_name'];
$info = getimagesize($file_temp);
} else {
print "File not sent to server succesfully!";
exit;
}
L'upload de fichier du formulaire comporte les éléments suivants:
<input name="file" type="file" class="photo_file_upload">
Le bouton soumettre pour le téléchargement a les attributs suivants:
<button type="submit" name="submit" class="photo_upload">Upload</button>
Mais à chaque fois que je l'exécute, je reçois toujours le message d'avertissement suivant:
Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in (upload PHP file) on line 10
(ligne 10 est cette partie: $info = getimagesize($file_temp);)
N'importe qui ont des idées sur ce qui en est la cause?
- Quel est votre
<form>
ressembler? - Avez-vous mis
enctype="multipart/form-data"
sur votre formulaire d'attributs? - Autant que je me souvienne
$_FILES['file']['tmp_name']
est juste le nom de fichier sans chemin d'accès, vous devez utilisermove_uploaded_file()
puis exécutezgetimagesize()
sur le nom de fichier et le chemin d'accès où vous l'avez déplacé. Je peux me tromper, cependant. - Vous êtes dans l'erreur. tmp_name a le nom de fichier temporaire sur le serveur. Et comment voulez-vous déplacer le fichier si vous ne connaissez pas le chemin, mais seulement le nom de fichier?
- Le formulaire utilise enctype="multipart/form-data" et passe par cette case: if(isset($_POST["envoyer"])); donc je suppose que c'est être soumis correctement? Auquel cas, le problème est avec mon PHP.
Vous devez vous connecter pour publier un commentaire.
- Vous vérifié si le formulaire a été soumis, mais n'a pas vérifier si le fichier a été envoyé. Dans certains cas, un formulaire peut être soumis, mais le fichier ne sera pas envoyé (c'est à dire la taille du fichier est plus gros la limite de taille de fichier de config).
Utiliser ceci:
Vous voir && isset($_FILES['fichier']) est nouveau
Ou vous pouvez l'étendre
&&
au lieu deAND
est mieuxisset($_FILES['file'])
est de la mauvaise voie. parce queif ($_FILES['file'])
ETif(isset($_FILES['file']))
renvoie des résultats différents! parce que$_FILES['file']
tableau est envoyé par la forme, mais elle est vide. doncisset()
retournera true. mais nous avons besoin de vérifier si le tableau vide, c'est pourquoi nous pouvons utiliserif($_FILES['file'])
OUif(empty($_FILES['file']))
mais pasisset()
isset()
vérifie. Vous supposez que la variable $_FILES['fichier'] peut être évalué à une valeur booléenne. Ceci est vrai seulement si il existe (ma), et, dans le cas contraire déclencher un AVIS (une mauvaise chose). Concernant votre logique de l'opérateur: Voir php.net/manual/en/language.operators.logical.php en particulier les deux derniers démos dans l'exemple 1. "&&" habituellement, se comporte comme vous le souhaitez.isset()
fonctionnera très bien, je vais mettre à jour ma réponse. MaisAND
,&&
ce n'est pas exactement la même.AND
a une priorité plus faible contre&&
. en tout cas merci pour la discussionWarning: getimagesize() [function.getimagesize]: nom de fichier ne peut pas être vide dans
Vérifier la MAX_SIZE variable,
exemple pour définir une 2Mo de l'image:
HTML:
vous pouvez également vérifier la taille Maximale de données POST que PHP va l'accepter et la taille Maximale autorisée pour le téléchargement des fichiers en PHP.ini :
post_max_size = ?
upload_max_filesize = ?
Modifier ces paramètres dans votre php.fichier ini; (Actuellement, il permettra seulement de 2 mo de taille
télécharger et post). Parfois, c'est la raison pour ces erreurs.
vous devez changer la forme enctype à "multipart/form-data"
Après la mise à niveau 'upload-max-taille' , Redémarrez tous les Services de wamp ou xampp ! elle aura de droite !
Notice: Undefined index: fileToUpload dans D:\xampp\htdocs\public_html\php\form_php\application\process_application.php sur la ligne 38
Notice: Undefined index: fileToUpload dans D:\xampp\htdocs\public_html\php\form_php\application\process_application.php sur la ligne 43
Warning: getimagesize(): nom de fichier ne peut pas être vide D:\xampp\htdocs\public_html\php\form_php\application\process_application.php sur la ligne 43
Le fichier n'est pas une image.Désolé, le fichier existe déjà.
Notice: Undefined index: fileToUpload dans D:\xampp\htdocs\public_html\php\form_php\application\process_application.php sur la ligne 58
Désolé, JPG, JPEG, PNG & fichiers GIF sont autorisés.Désolé, votre fichier n'a pas été téléchargé.
Si Vous Obtenez des Erreurs comme celui-ci, vous devez vérifier que vous avez ajouté form enctype à "multipart/form-data"
Utiliser pour me rattraper, tout à fait beaucoup pour commencer.