Je semble avoir une erreur bizarre que je n'arrive pas à comprendre. Mon site Web fonctionnait sur un serveur, mais quand je l'ai transféré à un autre, il a cessé de fonctionner. Je crois que je l'ai réduit l'erreur à cette ligne de code:move_uploaded_file se bloque?
$ret = move_uploaded_file($tmp_name, $orig_path);
Ceci est exécuté par le biais d'un appel AJAX donc il est un peu difficile à déboguer, mais le script peut renvoyer un code d'erreur et mon JavaScript va le alert
. Alors, je l'ai enveloppé dans deux de ces instructions de débogage:
echo json_encode(array(
'success' => false,
'errno' => $tmp_name.' -> '.$orig_path,
));
exit;
$ret = move_uploaded_file($tmp_name, $orig_path);
echo json_encode(array(
'success' => false,
'errno' => 'no error',
));
exit;
Le premier fonctionne bien et recrache quelque chose comme:
error /tmp/phpk3RICU -> /home/username/Websites/website/photos/o/2-4a3354dd017a9.jpg
Peut-être que je suis un peu un noob linux, mais je ne peux pas trouver /tmp/phpk3RICU
sur mon système (est-il supprimé dès que le script se termine ou quoi?). Plus sur cela en une seconde cependant.
Si je supprime la première vérification de débogage et que move_uploaded_file
est exécuté, la deuxième vérification de débogage ne semble jamais être exécutée, ce qui me porte à croire que move_uploaded_file est suspendu.
Si au lieu d'utiliser $tmp_name
j'utilise un fichier I n'existe pas, alors le 2ème contrôle DOES est exécuté. Donc ... il semble qu'il ne veut tout simplement pas déplacer ce fichier tmp, mais il ne signale pas d'erreur. Je lance une nouvelle installation de la pile LAMP sur ma machine Unbutu, installée via apt-get ... faites moi savoir si vous avez besoin de plus d'informations.
Oh .. et je ne sais pas si c'est pertinent, mais le fichier est téléchargé via flash.
mkdir échoue aussi réellement ...ne semble pas créer de fichiers et ne crachera pas une erreur. – mpen