2010-02-08 6 views
1

Je télécharge des fichiers via JS et stocke le chemin temporaire dans la session. Que j'utilise le code suivant pour déplacer les fichiers.move_uploaded_file ne fonctionne pas

if(move_uploaded_file($_SESSION['temp_img'][$key]['path'], $dest.$bigimg)){ 

$dest et $bigimg sont définis plus tôt dans le script avec l'identifiant de la base de données.

Toutes Idées ou alternatives?

Répondre

2

La réponse de MANCHUCK était proche mais pas tout à fait là. Vous devez appeler move_uploaded_file dans le script où le fichier a été téléchargé. Vous ne pouvez pas faire ce que vous faites, c'est-à-dire "stocker le chemin temporaire dans la session" car ce chemin n'est valide que pour une requête.

A partir du manuel PHP:

Le fichier sera supprimé du répertoire temporaire à la fin de la demande si elle n'a pas été déplacé ou renommé.

(Non souligné)

-2

Quelle est la sortie de $ _SESSION ['temp_img'] [$ key] ['chemin'], avez-vous aussi la permission d'écrire dans le répertoire web où vous placez les fichiers. Vous devrez peut-être le définir sur 777 pour certains hôtes pour permettre au serveur Web d'y écrire. Move_uploaded_file vérifie qu'un fichier a été téléversé sur cette page.

+0

depuis qu'il est téléchargé sur un autre script, move_uploaded_file échoue car aucun fichier n'a été effectivement affecté à ce script – MANCHUCK

+0

/tmp/phpbvWPqW -la sortie de la session et les autorisations sont définies – Ross

1

Vous êtes en train de télécharger le fichier vers un autre script PHP puis de le stocker dans une session. Au lieu d'utiliser move_upload_file, utilisez rename.

+0

Cela montre le problème mais cela ne fonctionnera toujours pas. S'il n'appelle pas 'move_uploaded_file' avant la fin de la requête, le fichier sera supprimé. – Josh