Domanda

Sto cercando di utilizzare Uploadify (un plugin jQuery) con la mia CakePHP app. Localmente (WampServer), funziona benissimo, ma quando provo sul mio server di vivere (DreamHost), i file non vengono mostrate. Ho correttamente chmod'ed le cartelle, controllato i percorsi, ecc, e non riesco a dare un senso del perché non funziona. Ecco upload.php:

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";

Questo script è decisamente in esecuzione, ma ho guardato nella cartella specificata (e in tutto il file system), e il file caricato (s) solo che non vengono visualizzati! Mi sta facendo impazzire - si spera che qualcuno ha la risposta a questa. Per favore fatemi sapere se devo inviare più codice, e lo farò.

È stato utile?

Soluzione 2

Si scopre, è stato questa riga:

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

Questa linea è stata pensata per aggiungere una serie casuale di numeri per il nome del file per evitare collisioni. Tuttavia, come si può vedere, è che operano su tutto il percorso, non solo il nome del file. Beh, il mio nome di dominio è nel mio percorso (cioè mydomain.com), e così è ottenere modifiche al mydomain_12314123402.com, che ovviamente è un percorso che non esiste.

L'uomo, mi sento come un idiota!

Altri suggerimenti

Si potrebbe cambiare $ targetPath quindi è relativo al documento, piuttosto che il percorso del server esatto. Ho avuto un problema simile qualche tempo fa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top