Jump to content


Photo

Erro No Upload


  • Faça o login para participar
30 replies to this topic

#16 dmw

dmw

    Turista

  • Usuários
  • 25 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 18/03/2010, 15:09

Max William com esse codigo seu da para fazer o EDITAR ???

#17 Max William

Max William

    12 Horas

  • Usuários
  • 192 posts
  • Sexo:Masculino
  • Localidade:Maringá - Paraná

Posted 18/03/2010, 16:35

Olha, da ate que da, mas como eu disse no meu primeiro post, nunca tinha trabalhado com sistema de upload via FTP.
Então, da sim para reaproveitar o codigo e fazer editar, porque você teria que fazer uma serie de verificações, por exemplo.

Se fosse para editar, você teria que verificar o nome do arquivo atual, verifica o nome do arquivo a ser enviado, comparar se for iqual vc so substitui, caso seja diferente, vc deleta o arquivo anterior e faz upload do novo, e altera o registro onde fica arzenado a imagem a ser carregada. Para vc não ficar com monte de imagens sem uso no seu servidor.
Se eu lhe ajudei ;) Clique para agradecer!

#18 dmw

dmw

    Turista

  • Usuários
  • 25 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 18/03/2010, 16:43

Entendi cara o que vc quis dizer mas agr eu so quero mudar o nome do arquivo sem deletar ele.

Eu fiz assim, mas nao esta editando o campo :

<form name="teste" method="POST" action="" enctype="multipart/form-data">

<input type="hidden" name="txtid[]" value="<?php echo $i;?>" size="6" readonly="readonly"/></p><p>
<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='enviar' value='Enviar'/>
</form>

<?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['enviar']))
{
# 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 = "/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 = mysql_query("UPDATE tab_documento_teste SET documento = '"$nome[$i]"' WHERE id_doc = '$id_p[$i]' AND id_cliente = '$id_busca'");
}

}
?>

Edição feita por: dmw, 18/03/2010, 16:44.


#19 Max William

Max William

    12 Horas

  • Usuários
  • 192 posts
  • Sexo:Masculino
  • Localidade:Maringá - Paraná

Posted 18/03/2010, 17:01

Certo, então seguinte.

Antes de mais nada, quando for postar um codigo coloque ele entre [ code ] ou aquele sinal de <> que tem no formulario, senão fica dificil pra gente ler o codigo.
Refente a dúvida, não entendi o erro, entendi que ele não esta atualizado, mas apresenta algum erro?

E outra coisa seu arquivo esta nesta ordem que vc colocou para mim aqui?
Porque se estiver, o seu problema pode estar no proprio formulario, quando vc da echo na varialvel $i.

$sel = @mysql_query("SELECT * FROM tab_documento_teste WHERE id_cliente = $id_busca");
while($linha = @mysql_fetch_array($sel))
{
 $i = $linha["id_doc"];
}

e você quer imprimir ele aqui?
<input type="hidden" name="txtid[]" value="<?php echo $i;?>" size="6" readonly="readonly"/>

Se for isto que vc quer fazer, então primeiro problema esta ai, porque?
Você esta tentando imprimir uma variavel que não existe ainda. Ele imprimi a variavel $i antes dela ser criada.

Outro erro, naquele codigo seu.
$sel = @mysql_query("SELECT * FROM tab_documento_teste WHERE id_cliente = $id_busca");
while($linha = @mysql_fetch_array($sel))
{
 $i = $linha["id_doc"];
}

Aqui aparentemente vc esta querendo recuperar o id_doc referente ao cliente(id_cliente), jeito correto de se fazer isto é assim:
$sel = mysql_query("SELECT * FROM tab_documento_teste WHERE id_cliente = $id_busca");
$arr = mysql_fetch_array($sel);

$id = $arr["id_doc"];

teste ai:
<?php
 # Conexão SQL
 include "sql.php";
 
 # Identifica o cliente
 $id_busca = $_GET["id"];
 
 # Recupera dados do cliente
 $sel = mysql_query("SELECT * FROM tab_documento_teste WHERE id_cliente = $id_busca");
 $arr = mysql_fetch_array($sel);
 # Campo usado no formulario
 $id = $arr["id_doc"];
 
?>

<form name="teste" method="POST" action="" enctype="multipart/form-data">

	<input type="hidden" name="txtid[]" value="<?php echo $id;?>" size="6" readonly="readonly"/></p><p>
	<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='enviar' value='Enviar'/>
</form>

<?
 $ftp_server = 'ftp.ubccriative.com.br'; // Dominio FTP
 $ftp_user_name = '****'; // Login FTP
 $ftp_user_pass = '****'; // Senha FTP
 if(isset($_POST['enviar']))
 {
  # 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 = "/anexos_orcins/";

  # Contagem
  $numero = count($nome);
  
  $id_p = $_POST["txtid"];
  
  # 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);

   $sql = mysql_query("UPDATE tab_documento_teste SET documento = '$destino[$i]' WHERE id_doc = '$id_p' AND id_cliente = '$id_busca'");
  }
 }
?> 

não entendi o que é isto, o que seria?
$id_p = $_POST["txtid"];

do jeito que esta, ele concerteza não vai funcionar, ao menos que ele seja um array (o que não me parece no caso).

So para vc entender,
Estou usado o for() porque eu preciso percorrer um array e salvar todos os dados dele.
Ou seja, quando eu recebo o post das imagens enviadas. ele vem em forma de array, iniciando-se na posição 0 e eu uso a variavel $numero para contar quantos dados vieram.
na instrução for eu estou passando a seguinte instrução

for(variavel $i tem valor inicial de 0 ; faça loop ate que $i seja iqual a $numero ; no final do cliclo adicione mais 1 ai valor de $i)

entendeu?
então quando eu preciso q nem no seu caso, fazer upload de imagens, essas imagens estão vindo em array, então $i vai orientar tudo
primeiro loop envio a imagem[0], segundo loop imagem[1], assim repetitivamente ate $i atingir o numero maximo determinado.

Edição feita por: Max William, 18/03/2010, 17:03.

Se eu lhe ajudei ;) Clique para agradecer!

#20 dmw

dmw

    Turista

  • Usuários
  • 25 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 18/03/2010, 17:11

Cara vlw pelas dicas eu vou tentar aqui qualquer coisa eu volto a postar mas vlw.

#21 dmw

dmw

    Turista

  • Usuários
  • 25 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 22/03/2010, 11:18

Max William eu descobri o erro ele nao esta salvando o nome do arquivo no BD.

O codigo q estou usando é esse. Eu nao sei onde esta o erro.

----- Codigo -----

<?php
# Conexão SQL
include "sql.php";

$ftp_server = 'ftp.ubccriative.com.br'; // Dominio FTP
$ftp_user_name = '*****'; // Login FTP
$ftp_user_pass = '*****'; // Senha FTP

# Identifica o cliente
$id_busca = $_GET["id"];

/*
# Recupera dados do cliente
$sel = mysql_query("SELECT * FROM tab_documento_teste WHERE id_cliente = $id_busca");

$arr = mysql_fetch_array($sel);
# Campo usado no formulario
$id = $arr["id_doc"];
*/
?>

<form name="teste" method="POST" action="" enctype="multipart/form-data">

<input type="hidden" name="txtid[]" value="<?php echo $id;?>" size="6" readonly="readonly"/></p><p>

<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='enviar' value='Enviar'/>
</form>

<?php

if(isset($_POST['enviar']))
{
# 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 = "/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]";

//$id_p = $_POST["txtid"];

# Move o arquivo
$upload = @ftp_put($conecta, $destino, $file[$i], FTP_BINARY);

$sql = "UPDATE tab_documento_teste SET documento = '".$nome[$i]."' WHERE id_cliente = '$id_busca'";

$resultado = mysql_query($sql) or die(mysql_error());

}


}//fim do IF principal
?>

#22 Max William

Max William

    12 Horas

  • Usuários
  • 192 posts
  • Sexo:Masculino
  • Localidade:Maringá - Paraná

Posted 22/03/2010, 13:50

Qual o erro?
Verifique se você abriu uma conexão SQL, se não estiver aberta ele não vai conseguir fazer os insert mesmo
Se eu lhe ajudei ;) Clique para agradecer!

#23 dmw

dmw

    Turista

  • Usuários
  • 25 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 22/03/2010, 13:57

Erro ele nao da nenhum, mas ele nao altera ele so altera quando por exemplo eu faço assim: $sql = "UPDATE tab_documento_teste SET documento = 'teste' WHERE id_cliente = '$id_busca'";
ae ele altera mas pelo contrario nao. Eu nao sei onde esta o erro para mim estava certo mas pelo jeito nao esta.

Nao esta pegando o nome do arquivo para salvar no BD.

Edição feita por: dmw, 22/03/2010, 13:59.


#24 Max William

Max William

    12 Horas

  • Usuários
  • 192 posts
  • Sexo:Masculino
  • Localidade:Maringá - Paraná

Posted 22/03/2010, 14:38

Da um dump na variavel $nome e ve o que ele ta retornando
Se eu lhe ajudei ;) Clique para agradecer!

#25 dmw

dmw

    Turista

  • Usuários
  • 25 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 22/03/2010, 14:46

Cara eu coloquei assim var_dump($nome) eu nao sei se eu fiz certo pq nunca fiz isso mas me retornou isso:

array(4) { [0]=> string(13) "cadastrar.txt" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" } array(4) { [0]=> string(13) "cadastrar.txt" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" } array(4) { [0]=> string(13) "cadastrar.txt" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" } array(4) { [0]=> string(13) "cadastrar.txt" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" }

#26 Max William

Max William

    12 Horas

  • Usuários
  • 192 posts
  • Sexo:Masculino
  • Localidade:Maringá - Paraná

Posted 22/03/2010, 14:56

Ele não ta passando nada mesmo..
Me diz.. o que é este cadastrar.txt?
e no codigo que vc postou não tem nada disso..

$nome esta recebendo este arquivo.. é o arquivo q vc esta enviando?
Se eu lhe ajudei ;) Clique para agradecer!

#27 dmw

dmw

    Turista

  • Usuários
  • 25 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 22/03/2010, 14:58

Esse cadastrar.txt é um arquivo que estou tentando enviar.

Esse $nome é uma variavel:

$nome = $_FILES['arquivo']['name'];

Edição feita por: dmw, 22/03/2010, 15:00.


#28 Max William

Max William

    12 Horas

  • Usuários
  • 192 posts
  • Sexo:Masculino
  • Localidade:Maringá - Paraná

Posted 22/03/2010, 15:15

Cara, não sei o que pode estar acontecendo, na teoria era para estar funcionando.

Mas pude perceber uma falha nesse codigo que te enviei, ele ta passando array vazio, acredito que seria prudente verificar se o array esta vazio, e eliminar, restando somente os arrays que tiverem conteudo. Depois vejo isso, tenho q ir visita cliente agora.
Se eu lhe ajudei ;) Clique para agradecer!

#29 dmw

dmw

    Turista

  • Usuários
  • 25 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 22/03/2010, 15:21

Blz cara !!!! Muito obrigado pela atenção....

Flw...
Abraço....

#30 dmw

dmw

    Turista

  • Usuários
  • 25 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 26/03/2010, 08:53

Alguem pode me ajudar ???? Esta me retornando um array vazio !!!!

Alguem pode me ajudar ???




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq