2009-07-24 5 views
1

J'essaie d'utiliser Uploadify (un plugin jQuery) avec mon application CakePHP. Localement (WampServer), ça fonctionne très bien, mais quand je l'essaye sur mon serveur live (Dreamhost), les fichiers n'apparaissent pas. J'ai bien chmodé les dossiers, vérifié les chemins, etc, et je ne peux pas comprendre pourquoi cela ne fonctionne pas. Voici upload.php:Uploadify - les fichiers n'apparaissent pas

if (!empty($_FILES)) { 
    $tempFile = $_FILES['Filedata']['tmp_name']; 
    $targetPath = $_SERVER['DOCUMENT_ROOT'] . "/app/webroot/posts/temp/"; 
    $targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name']; 

    $targetFile = str_replace(".", "_" . mt_rand(10000000,99999999) . ".", $targetFile); 

    move_uploaded_file($tempFile,$targetFile); 
} 
echo "1"; 

Ce script est certainement en cours d'exécution, mais je l'ai regardé dans le dossier spécifié (et dans le système de fichiers), et le fichier téléchargé (s) juste ne se présentent pas! Ça me rend fou - j'espère que quelqu'un a la réponse à ça. S'il vous plaît laissez-moi savoir si je devrais poster plus de code, et je le ferai.

Répondre

2

fin de compte, ce fut cette ligne:

$targetFile = str_replace(".", "_" . mt_rand(10000000,99999999) . ".", $targetFile); 

Cette ligne a été conçu pour ajouter une série aléatoire de numéros au nom du fichier pour éviter les collisions. Cependant, comme vous pouvez le voir, il fonctionne sur tout le chemin, pas seulement sur le nom de fichier. Eh bien, mon nom de domaine est sur mon chemin (mydomain.com, par exemple), et a donc eu des changements à mydomain_12314123402.com, qui est évidemment un chemin qui n'existe pas.

L'homme, je me sens comme un idiot!

+1

Ya, vous devriez utiliser pathinfo pour obtenir le chemin approprié. –

+0

Cela, ou simplement déplacer mon nombre aléatoire ajouter au nom de fichier avant de construire le chemin complet, ce qui est ce que j'ai fait. –

2

Vous pouvez modifier $ targetPath de sorte qu'il soit relatif au document plutôt qu'au chemin exact du serveur. J'ai eu un problème similaire il y a un moment.

Questions connexes