Upload passando porta e IP
06/12/2013
0
Preciso desenvolver um aplicativo web em PHP que faça upload de um arquivo de uma máquina local e envie o conteúdo para uma máquina indicando o IP e a porta desta máquina.
Alguém teria uma sugestão para me ajudar?
Alguém teria uma sugestão para me ajudar?
Ivam Filho
Curtir tópico
+ 0
Responder
Posts
10/12/2013
Samuel
Preciso desenvolver um aplicativo web em PHP que faça upload de um arquivo de uma máquina local e envie o conteúdo para uma máquina indicando o IP e a porta desta máquina.
Alguém teria uma sugestão para me ajudar?
Alguém teria uma sugestão para me ajudar?
não há muito o que fazer, veja: $arquivo = $_FILES["arquivo"]; $arqDestino = "/arquivos/"; if(!empty($arquivo)) { //renomeio o arquivo $arquivo['name'] = 'bn_'.$time.'_'.$arquivo['name']; $arqNome = $arquivo['name']; $arqTmpname = $arquivo['tmp_name']; $arqTamanho = $arquivo['size']; } if($arqTamanho >0 && strlen($arqNome)>1) { $CaminhoFull = $arqDestino. $arqNome; if(move_uploaded_file($arqTmpname,$CaminhoFull)) { echo "<script>alert('arquivo enviado!');</script>"; } }
em tese, para fazer upload pela aplicação, deve ser feito o que descrevi acima, e claro dá pra melhorar e muito o codigo acima!
Quanto a portae tals, ai é que tá o problema. no exemplo acima, o servidor de arquivo deve ser o mesmo servidor web ou ter um redirecionamento interno no servidor, fiz aqui com samba.
Alternativa...
Mande via ftp pela aplicação, caso o servidor de arquivos não seja o mesmo servidor web.
tenho um codigo pronto aqui:
<?php class ftp { public function upload($ftp_server, $ftp_user_name, $ftp_user_pass, $path, $source_file, $destination_file){ $ftp_server = $ftp_server; // set up basic connection $conn_id = ftp_connect($ftp_server, FTP_PORTA); set_time_limit(180); $ftp_user_name = $ftp_user_name; $ftp_user_pass = $ftp_user_pass; // login with username and password $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); ftp_pasv($conn_id, true); // check connection if ((!$conn_id) || (!$login_result)) { } else { //NOME DO ARQUIVO NO DESTINO $destination_file = $destination_file; //envio através de upload post $source_file = $source_file; //upload através de arquivo físico no cliente //$source_file = 'C:\Documents and Settings\eduardo.pereira\Meus documentos\mp3\MATANZA CD05 MTVAoVivo\18RioDeWhisky.mp3'; // upload the file ftp_chdir($conn_id, $path); $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY); } // check upload status if (!$upload) { return FALSE; } else { //upload efetuado return TRUE; } // close the FTP stream ftp_close($conn_id); } public function deletar($ftp_server, $ftp_user_name, $ftp_user_pass, $source_file){ $ftp_server = $ftp_server; // set up basic connection $conn_id = ftp_connect($ftp_server, FTP_PORTA); set_time_limit(180); $ftp_user_name = $ftp_user_name; $ftp_user_pass = $ftp_user_pass; // login with username and password $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); ftp_pasv($conn_id, true); // check connection if ((!$conn_id) || (!$login_result)) { } else { //NOME DO ARQUIVO NO DESTINO //envio através de upload post $source_file = $source_file; //upload através de arquivo físico no cliente //$source_file = 'C:\Documents and Settings\eduardo.pereira\Meus documentos\mp3\MATANZA CD05 MTVAoVivo\18RioDeWhisky.mp3'; // upload the file ftp_chdir($conn_id, FTP_DIR); $upload = ftp_delete($conn_id, $source_file); } // check upload status if (!$upload) { return FALSE; } else { //upload efetuado return TRUE; } // close the FTP stream ftp_close($conn_id); } } ?>
lembre-se de configurar as permissões de escrita no diretório onde será feito o upload:
no linux via terminal: chmod -R 777 /var/www/arquivos/
espero ter ajudado!
Responder
18/12/2013
Ivam Filho
Ajudou bastante, o problema é que não dá para fazer por ftp, pois o servidor não é um computador, mas uma máquina unitarizadora uma impressora grande e tem um script próprio. mas talvez com samba resolva. Obrigado!
Responder
Clique aqui para fazer login e interagir na Comunidade :)