Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Scientist

[Resolvido] move_uploaded_file não funciona

Recommended Posts

Localmente faço o seguinte:

 

if (!empty($_FILES)) {

    	$tempFile = $_FILES['Filedata']['tmp_name'];

     $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder']. '/';
     $targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];

         move_uploaded_file($tempFile,$targetFile);
}

 

Funciona, perfeitamente. Porém se eu por na hospedagem (godaddy), para de funcionar.

 

OBS: Estou usando o jquery uploadify e reparei que o $_FILES['Filedata']['tmp_name'] está vindo vazio, apenas o $_FILES['Filedata']['name'] está vindo com o nome do arquivo

Compartilhar este post


Link para o post
Compartilhar em outros sites

E aparece algum erro ? qual ?

 

inicie teus codigos com um

ini_set('display_errors',1);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como estou usando o plugin UPLOADIFY jquery, não tem como eu debugar o PHP e nem ver os erros porque a página é chamada via JQUERY, e isto só ocorre quando o site está no ar (da dei permissão 777 e nada)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já sei o seu erro, quando você está em localhost, você defini uma pasta onde será feito o upload, e quando for online, você deve mudar para o caminho online.

Compartilhar este post


Link para o post
Compartilhar em outros sites

existe como debugar sim amigo.. sempre tem :lol:

 

http://www.uploadify.com/documentation/uploadifive/debug-2/

 

 

Além disso, você pode fazer um script de teste, apenas com o upload, e verificar os erros do php.

Programar as cegas não é uma boa maneira de fazer as coisas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu estou usando o uploadify e não o uploadifive, já fiz todo o script mais para onde vai o log do debug ?

 

Notei o seguinte:

Local ele funciona porque estou passando um arquivo da minha maquina para minha propria maquina (não há mudanças de maquina)

 

Online eu estaria passando um arquivo da minha maquina para o servidor, será que só funciona se usar o FTP_PUT ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

errei o link, olha o debug do uploadify:

http://www.uploadify.com/documentation/uploadify/debug/

 

na verdade não é bem isso.. é possível usar o move_uploaded_file sim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

os 2 movem um arquivo para o servidor, mas de formas diferentes, e com protocolos diferentes.

 

Ativou o debug ai ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em primeiro lugar, se eu utilizo assim :

 

$("#file_upload").uploadify({
      'debug' : true,
      'swf'             :'./uploadify/uploadify.swf',
       'uploader'        :'/uploadify/uploadify.php'

   });

 

Nem da para clicar no botão, então mudei para:

 

$("#file_upload").uploadify({
      'debug' : true,
      'uploader'             :'../../js/uploadify/uploadify.swf',
       'script'        :'../../js/uploadify/uploadify.php'

   });

 

E consigo clicar e carregar o upload, porém não sei onde ver o log do debug.

 

Estou quase certo que o problema não está no UPLOADIFY, pois criei uma simples página para testar:

 

<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);

if (!empty($_FILES)) {

    	$tempFile = $_FILES['file_upload']['tmp_name'];

     $targetPath = $_SERVER['DOCUMENT_ROOT'] . '/js/uploadify/tempfiles/';
     $targetFile =  str_replace('//','/',$targetPath) . $_FILES['file_upload']['name'];

         move_uploaded_file($tempFile,$targetFile);
}
?>
<form action="" method="post" name="teste" enctype="multipart/form-data">
   <input type="file" name="file_upload" id="file_upload" /><br />
   <input type="submit" name="enviar" value="enviar" />    
</form>

 

e mesmo assim não funciona, e nem da erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu nunca disse que o erro estaria no plugin de upload. Mas quis te mostrar que é possível debugar com ele sim.

 

Coloque um

 

var_dump( $_FILES );

e veja se aparece a chave "errors" deste array.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja o que aparece no var_dump:

 

array(1) { ["file_upload"]=> array(5) { ["name"]=> string(19) "foto_paiui (11).jpg" ["type"]=> string(0) "" ["tmp_name"]=> string(0) "" ["error"]=> int(6) ["size"]=> int(0) } } 

 

O Erro 6 corresponde ao seguinte:

 

UPLOAD_ERR_NO_TMP_DIR

Value: 6; Missing a temporary folder. Introduced in PHP 4.3.10 and PHP 5.0.3.

 

Como concertar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, agora debugamos e chegamos ao erro.

 

 

É uma hospedagem compartilhada ? ou você tem acesso aos arquivos de configuração do servidor ?

Precisa editar umas diretivas no php.ini.

Compartilhar este post


Link para o post
Compartilhar em outros sites

William Bruno seguindo a sua dica eu alterei o meu php.ini e funcionou meu upload perfeito.

Meu erro era que quando era arquivo acima de 2mb o g$_FILES["img_photo"]["tmp_name"] não vinha valor nenhum, assim eu não tinho como fazer o upload. Depois que alterei para 20mb .... ficou show!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.