2011-06-26 2 views
1

Je suis complètement perplexe. J'essaie de télécharger une photo simple via HTTPS. Je l'ai fait d'innombrables fois, mais cette fois ça ne marche pas.Problèmes de téléchargement PHP

Voici la situation. J'utilise un script de téléchargement de fichier très simple mais robuste, un simple input = fichier, etc. et un bouton de soumission à télécharger en utilisant POST, de là PHP prend le relais et fait le reste. Une fois de plus sur le côté php je suis passé par quelques problèmes de résolution/débogage et j'ai remarqué que le nom de fichier était un tas de goop ... uploads/1. 8D J Q 9. certainement pas le fichier que je choisis.

Je ne sais pas si c'est un problème avec le SSL, HTML5 ou PHP. Toutes les autres données transmises sont très lisibles dans la base de données.

J'ai remarqué quelque chose de nouveau dans la boîte de téléchargement de c: \ fakepath, j'ai utilisé HTML5 depuis plusieurs mois et je n'ai pas vu ça, je l'ai regardé et j'ai vu qu'il s'agissait d'une fonctionnalité de sécurité HTML5. Je ne sais pas si cela cause le problème ou non?

Ok donc j'ai vérifié avec un ami (en supposant que je devenais fou) que le HTML et PHP est bien.

J'ai même cassé vers le bas et est allé super simple avec toujours pas de chance ...

$uploaddir = 'uploads/'; 

$uploadfile = $uploaddir . basename($_FILES['photo']['name']); 
$filename = $_FILES['photo']['name']; 
if (move_uploaded_file($_FILES['photo']['tmp_name'], $uploadfile)) { 
    echo "Alls good."; 
} 

également sur la page HTML J'utilise le plugin jquery « niceforms » J'ai tourné cette option pour le gouverner out, et ne fonctionne toujours pas.

Merci.

+0

Est-ce sur un serveur Apache ou IIS? Ou quoi? – tplaner

Répondre

1

C'est toujours les choses simples n'est-ce pas? Je pense que vous pouvez ignorer le chemin du répertoire de téléchargement relatif vers lequel vous déplacez le fichier. Je n'utiliserais pas de chemin relatif ici.

$uploaddir = 'uploads/'; 

Essayez plutôt d'utiliser le chemin complet du système de fichiers vers le répertoire de téléchargement. C'est généralement la racine du document concaténée avec votre répertoire 'uploads'.

$_SERVER['DOCUMENT_ROOT'] or dirname(__FILE__) 

... devrait aider à définir le chemin.

$uploaddir = $_SERVER['DOCUMENT_ROOT'].'/uploads/'; 
3

Je me demande si vous avez déclaré votre de comme celui ci-dessous:

<form enctype="multipart/form-data" action="uploader.php" method="POST"> 
    <input type="hidden" name="MAX_FILE_SIZE" value="100000" /> 
    Choose a file to upload: <input name="uploadedfile" type="file" /><br /> 
    <input type="submit" value="Upload File" /> 
</form> 

Vous devez déclarer la enctype si vous téléchargez quelque chose.

Questions connexes