Ir para conteúdo

POWERED BY:

Arquivado

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

DMW

[Resolvido] Editar Upload !

Recommended Posts

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

×

Informação importante

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