9
votes

$ _Server ["content_length"] renvoyant zéro lors du téléchargement d'un fichier à l'aide de XMLHTTPQUEST

J'ai un problème sur ma machine de développement qui semble isolé à cette machine et je ne peux pas le comprendre. J'ai un téléchargeur de fichier jQuery qui publie le fichier sélectionné par l'utilisateur sur un script PHP pour la manipulation à l'aide de XMLHTTPQUEST. Le script fonctionne bien sur mon MacBook Pro exécuté OSX10.6.3 avec MAMP 1.9, cependant sur mon IMAC avec exactement le même système d'exploitation et la même version de MAMP, avec une image de serveur identique, elle échoue.

J'ai tracé la cause de la Erreur vers le bas de la propriété $ _ Server ["content_length"] retourner 0, même si je peux obtenir le nom de fichier juste bien et que tout semble avoir abouti à la demande. Pour une raison quelconque, cela ne semble pas me donner la longueur de contenu réelle. Voici le code qui cause le problème - la fonction en question est getiser () . xxx


2 commentaires

Est-ce que autre chose manque? Avez-vous essayé Print_R ($ _ Server) et print_r ($ _ POST) pour voir tous les champs que votre script reçoit?


print_r'ing Ceci me donne une quantité massive de champs, y compris la corde de requête correcte, le titre de script et l'emplacement, etc. Y a-t-il quelque chose de plus précisément que je devrais rechercher? Je ne peux pas coller toute la réponse ici car c'est trop de caractères.


5 Réponses :


3
votes

Avez-vous défini votre type de codage sur multipart / form-données code>?

<form action="upload.php" method="post" enctype="multipart/form-data">
  ...
  <input type="file" ... />
  ...
</form>


1 commentaires

Oui, cela est géré par le plugin JQuery et le codage est correct.



6
votes

résolu! Semble le script jquery que j'utilise échoue sous Firefox 3.5.x, j'ai mis à jour à 3.6.9 et cela fonctionne bien.

Maintenant, je dois trouver un moyen de le rendre compatible avec les versions plus anciennes de Firefox.


0 commentaires

0
votes

J'utilise le même plugin, la dernière version semble fonctionner correctement, même avec des navigateurs plus anciens. J'ai toujours des problèmes d'affichage / rendu avec IE6 et IE7, mais j'ai résolu ceux en faisant le bouton opaque et en ajoutant une image pour la couvrir. J'ai également modifié le script PHP récepteur pour être une seule fonction plutôt qu'une fonction multiple. Ne convient pas à toutes les occasions, mais cela fonctionne bien pour moi pour tous les navigateurs: xxx

et voici le bytes_to_num que j'utilise comme une fonction d'assistance, mais vous pouvez l'inclure dans le même fonction également si vous voulez: xxx


0 commentaires

0
votes
$headers = apache_request_headers();
echo $headers['Content-Length'];
I'll assume this one also returns 0?

0 commentaires

3
votes

Il est possible que le codage chunée soit utilisé, ce qui n'enverrait pas la longueur du contenu.


0 commentaires