DMW 0 Denunciar post Postado Março 25, 2010 Boa tarde galera !!! Estou tentando fazer um editar em uma tabela que estao cadastrados os arquivos anexados pelo cliente, mas o problema é que nao esta funcionando. Não aparece nenhum tipo de erro na tela, mas com os teste que fiz o meu array esta vindo vazio por causa disso que nao esta dando certo. Quando eu coloco assim: echo $nome = $_FILES['arquivo']['name']; aparece ARRAY. Como consigo arrumar isso ??? Grato... <?php include "sql.php"; $ftp_server = 'ftp.ubccriative.com.br'; // Dominio FTP $ftp_user_name = '******'; // Login FTP $ftp_user_pass = '******'; // Senha FTP $id_busca = $_GET["id"]; $sel = @mysql_query("SELECT * FROM tab_documento_teste WHERE id_cliente = $id_busca"); while($linha = @mysql_fetch_array($sel)){ $i = $linha["id_doc"]; } if(isset($_POST["btnedita"])){ # Efetua Conexão com FTP $conecta = ftp_connect($ftp_server); # Autentica usuario $autentica = ftp_login($conecta, $ftp_user_name, $ftp_user_pass); # Variaveis $nome = $_FILES['arquivo']['name']; $arquivo = $_FILES['arquivo']; # Determino quem é o cara a ser enviado $file = $arquivo['tmp_name']; # Diretorio onde sera enviado $diretorio = "/public_html/f/anexos_orcins/"; # Contagem $numero = count($nome); # Efetuo o upload for ($i=0; $i<$numero;$i++) { # Caminho completo, diretorio + nome do arquivo $destino = $diretorio."$nome[$i]"; # Move o arquivo $upload = @ftp_put($conecta, $destino, $file[$i], FTP_BINARY); $id_p = $_POST["txtid"]; $sql = "UPDATE tab_documento_teste SET documento = '".$nome[$i]."' WHERE id_doc = '$id_p[$i]' AND id_cliente = '$id_busca'"; $resultado = mysql_query($sql) or die(mysql_error()); } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body> <form id="form1" name="form1" method="post" action="" enctype="multipart/form-data"> <input type="hidden" name="txtid[]" value="<?php echo $i;?>" size="6" readonly="readonly"/> <input type='file' name='arquivo[]' /><br><br /> <input type='file' name='arquivo[]' /><br /><br> <input type='file' name='arquivo[]' /><br /><br> <input type='file' name='arquivo[]' /><br /><br> <input type="submit" name="btnedita" id="btnedita" value="Editar"/> </form> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
Pierry Bos 1 Denunciar post Postado Março 25, 2010 Bom, pra começar, um array eu visualizo com print_f, nao com echo (um array o echo vai apenas imprimir que é array, nao listar o array em tela, como você quer) troque e poste pra saber o que podemos fazer Compartilhar este post Link para o post Compartilhar em outros sites
DMW 0 Denunciar post Postado Março 25, 2010 Cara eu coloquei assim: print_r($nome = $_FILES['arquivo']['name']): Resultado: Array ( [0] => Novo(a) Documento de texto.txt [1] => [2] => [3] => ) Array ( [0] => Novo(a) Documento de texto.txt [1] => [2] => [3] => ) Array ( [0] => Novo(a) Documento de texto.txt [1] => [2] => [3] => ) Array ( [0] => Novo(a) Documento de texto.txt [1] => [2] => [3] => ) print($nome = $_FILES['arquivo']['name']): Resultado: ARRAY Compartilhar este post Link para o post Compartilhar em outros sites
Pierry Bos 1 Denunciar post Postado Março 25, 2010 Bom, vendo o Resultado: Array ( [0] => Novo(a) Documento de texto.txt [1] => [2] => [3] => ) Array ( [0] => Novo(a) Documento de texto.txt [1] => [2] => [3] => ) Array ( [0] => Novo(a) Documento de texto.txt [1] => [2] => [3] => ) Array ( [0] => Novo(a) Documento de texto.txt [1] => [2] => [3] => ) da pra ver que tu tens dados apenas em $_FILES['arquivo']['name'][0][0] $_FILES['arquivo']['name'][1][0] $_FILES['arquivo']['name'][2][0] $_FILES['arquivo']['name'][3][0] e sao "Novo(a) Documento de texto.txt". Queres exatamente o que, fazer upload destes arquivos? Multiplos uploads? Compartilhar este post Link para o post Compartilhar em outros sites
DMW 0 Denunciar post Postado Março 25, 2010 Eu quero fazer o seguinte: Vamos supor que o cliente anexo um arquivo errado, editando ele tem a opção de trocar esse arquivo que ele anexo errado colocando o certo. Da para fazer isso ??? Compartilhar este post Link para o post Compartilhar em outros sites
lucaswxp 22 Denunciar post Postado Março 25, 2010 Na hora de editar você resgata as informações do DB certo? Então basta resgata-las e dar um UPDATE normalmente na hora da edição/submisão. A unica diferença, é que você terá que deletar o antigo arquivo com unlink() ou sobrescreve-lo. http://php.net/manual/en/function.unlink.php Compartilhar este post Link para o post Compartilhar em outros sites
DMW 0 Denunciar post Postado Março 25, 2010 Entao cara eu to tentando fazer isso mas nao to conseguindo pois o meu array esta vindo vazio mas vlw pela dica do unlink e nao sei onde esta o erro. Compartilhar este post Link para o post Compartilhar em outros sites
Pierry Bos 1 Denunciar post Postado Março 25, 2010 Tem, da pra fazer envio de um unico arquivo ou multiplos como você quer http://noticias.aspecto.net/index.php/upload-de-multiplos-arquivos-com-php.html o que faco é primeiro mandar o arquivo, depois sincronizar com o banco (insert ou update) vi que tens um GET no teu codigo, estas misturando POST e GET ou estou confundindo? Compartilhar este post Link para o post Compartilhar em outros sites
lucaswxp 22 Denunciar post Postado Março 25, 2010 O problema de estar exibindo "array" ao dar echo? Se for isso, já foi explicado acima, mas caso não tenha entendido: O seu input está assim: <input type='file' name='arquivo[]' />Portanto irá retornar um array. Por isso imprimi um array quando se da um echo. Então, para acessar o nome dos input, você terá que fazer: $_FILES['arquivo']['name'][0], $_FILES['arquivo']['name'][1] .... Links: http://forum.imasters.com.br/index.php?/topic/377995-upload-multiplo-de-imagens/ http://forum.imasters.com.br/index.php?/topic/251955-como-fazer-uploads-de-varios-arquivos/ http://noticias.aspecto.net/index.php/upload-de-multiplos-arquivos-com-php.html http://www.linhadecodigo.com.br/Artigo.aspx?id=970 Compartilhar este post Link para o post Compartilhar em outros sites
DMW 0 Denunciar post Postado Março 25, 2010 Estou usando o GET para pegar o id do cliente e o POST que eu uso para pegar o id do arquivo anexo para editar Compartilhar este post Link para o post Compartilhar em outros sites
Pierry Bos 1 Denunciar post Postado Março 25, 2010 Na verdade teu array nao esta vindo em branco, e sim tu nao estas acessando o indice que contem os dados. se acessares: $_FILES['arquivo']['name'][0][0] $_FILES['arquivo']['name'][1][0] $_FILES['arquivo']['name'][2][0] $_FILES['arquivo']['name'][3][0] verás a informacao. Compartilhar este post Link para o post Compartilhar em outros sites
DMW 0 Denunciar post Postado Março 25, 2010 Entao pq nao esta alterando ??? Compartilhar este post Link para o post Compartilhar em outros sites
Pierry Bos 1 Denunciar post Postado Março 25, 2010 Entao pq nao esta alterando ??? Possivelmente porque estas chegando so até $_FILES['arquivo']['name'][0] e isso é um array.Segundo, os arquivos estao sendo enviados para um servidor diferente do que executa o php? Se nao, da pra trocar a funçao ftp_put por move_uploaded_file ou is_uploaded_file. Outra coisa é que quando voce faz $upload = ftp_(...) voce nao está executando a funçao, apenas gerando um "gatilho" para depois usar. Já vi quem fez assim e depois executou com echo (apenas vi, nunca rodei meus scripts com isso) ****Obs: Se estiver falando alguma grande besteira me avisem! Compartilhar este post Link para o post Compartilhar em outros sites
DMW 0 Denunciar post Postado Março 25, 2010 Eu troquei o $upload = @ftp_put($conecta, $destino, $file[$i], FTP_BINARY); por $exito = move_uploaded_file($file[$i],$diretorio."$nome[$i]"); nao deu certo deu erros: Warning: move_uploaded_file(/public_html/f/anexos_orcins/mostra_upload.txt) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/ubccriative1/public_html/f/editar.php on line 48 Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php8NaLz4' to '/public_html/f/anexos_orcins/mostra_upload.txt' in /home/ubccriative1/public_html/f/editar.php on line 48 e quando eu faço assim $exito = move_uploaded_file($file["tmp_name"][$i],$diretorio."$nome[$i]"); nao acontece nd fica sem alterar do mesmo jeito. Mas agr eu reparei que ele so esta alterando o 1º arquivo certo, quando eu tento alterar o resto ele altera esse 1º arquivo colocando nd nele. Compartilhar este post Link para o post Compartilhar em outros sites
Pierry Bos 1 Denunciar post Postado Março 25, 2010 Tem uma coisa também: Um arquivo enviado para um servidor, com nome igual ao de outro ja existente sobrescreve o anterior. Porque voce nao renomeia os arquivos enviados? Lembro que no array [nome][*][0] todos tinham o mesmo nome de arquivo. Moral: Se voce esta enviando entao vai apenas um arquivo, nao varios. Vou pensar no que foram os erros, mas possivelmente voce esta setando apenas $_FILES[Arquivo][nome][0] e nao o ultimo indice! Compartilhar este post Link para o post Compartilhar em outros sites
Pierry Bos 1 Denunciar post Postado Março 26, 2010 E para hoje, o q temos nos teus scripts? Compartilhar este post Link para o post Compartilhar em outros sites
DMW 0 Denunciar post Postado Março 26, 2010 Cara eu nao consegui arrumar e so faltando isso para que eu acabe o sistema. Onde q você acha q esta errado ???? Compartilhar este post Link para o post Compartilhar em outros sites
Pierry Bos 1 Denunciar post Postado Março 26, 2010 Como está teu cod agora, e que erros está apresentando? Tem como comentar para ter uma ideia do que estavas pensando ao desenvolver? Compartilhar este post Link para o post Compartilhar em outros sites
DMW 0 Denunciar post Postado Março 29, 2010 Ae pessoal consegui fazer aqui !!!! Vlw... Flw... Compartilhar este post Link para o post Compartilhar em outros sites