Scientist 2 Report post Posted July 24, 2012 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 Share this post Link to post Share on other sites
William Bruno 1501 Report post Posted July 24, 2012 E aparece algum erro ? qual ? inicie teus codigos com um ini_set('display_errors',1); Share this post Link to post Share on other sites
Wanderson Valerio 102 Report post Posted July 24, 2012 Muitas vezes, é a permissão de pasta, o problema só ocorre quando o site está no ar? Share this post Link to post Share on other sites
Scientist 2 Report post Posted July 24, 2012 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) Share this post Link to post Share on other sites
Wanderson Valerio 102 Report post Posted July 24, 2012 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. Share this post Link to post Share on other sites
William Bruno 1501 Report post Posted July 24, 2012 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. Share this post Link to post Share on other sites
Scientist 2 Report post Posted July 24, 2012 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 ? Share this post Link to post Share on other sites
William Bruno 1501 Report post Posted July 24, 2012 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. Share this post Link to post Share on other sites
Scientist 2 Report post Posted July 24, 2012 entao poderia dizer que o move_uploaded_file tem a mesma função do ftp_put ? Share this post Link to post Share on other sites
William Bruno 1501 Report post Posted July 24, 2012 os 2 movem um arquivo para o servidor, mas de formas diferentes, e com protocolos diferentes. Ativou o debug ai ? Share this post Link to post Share on other sites
Scientist 2 Report post Posted July 24, 2012 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. Share this post Link to post Share on other sites
William Bruno 1501 Report post Posted July 24, 2012 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. Share this post Link to post Share on other sites
Scientist 2 Report post Posted July 24, 2012 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? Share this post Link to post Share on other sites
William Bruno 1501 Report post Posted July 24, 2012 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. Share this post Link to post Share on other sites
Scientist 2 Report post Posted July 25, 2012 Obrigado William Bruno, o problema já foi resolvido, a diretiva upload_tmp_dir no php.ini estava vazia e comentada :D Share this post Link to post Share on other sites
Junior Oliveira 01 0 Report post Posted December 18, 2016 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!!!! Share this post Link to post Share on other sites