Pergunta

Eu estou tentando usar Uploadify (um plugin jQuery) com meu aplicativo CakePHP. Localmente (WampServer), ele funciona muito bem, mas quando eu tento no meu servidor ao vivo (Dreamhost), os arquivos não aparecem. Eu chmod'ed corretamente as pastas, verificou os caminhos, etc, e eu não posso fazer qualquer sentido de por que ele não está funcionando. está aqui 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";

Este script é definitivamente a ser executado, mas eu olhei na pasta especificada (e todo o sistema de arquivos), e O arquivo enviado (s) apenas são não aparecendo! Isso está me deixando louco - espero que alguém tem a resposta para isso. Por favor, deixe-me saber se eu deveria postar mais código, e eu vou.

Foi útil?

Solução 2

Se torna, foi esta linha:

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

Esta linha foi concebido para acrescentar uma série aleatória de números para o nome do arquivo para colisões a evitar. No entanto, como você pode ver, ele está operando em todo o caminho, e não apenas o nome do arquivo. Bem, meu nome de domínio está no meu caminho (ou seja mydomain.com) e, portanto, estava ficando alterações mydomain_12314123402.com, o que obviamente é um caminho que não existe.

O homem, eu me sinto como um idiota!

Outras dicas

Você pode mudar $ targetPath por isso é relativo ao documento em vez do caminho do servidor exato. Eu tive um problema semelhante há um tempo atrás.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top