Erro No Upload
#16
Posted 18/03/2010, 15:09
#17
Posted 18/03/2010, 16:35
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.
#18
Posted 18/03/2010, 16:43
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
Posted 18/03/2010, 17:01
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.
#20
Posted 18/03/2010, 17:11
#21
Posted 22/03/2010, 11:18
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
Posted 22/03/2010, 13:50
Verifique se você abriu uma conexão SQL, se não estiver aberta ele não vai conseguir fazer os insert mesmo
#23
Posted 22/03/2010, 13:57
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
Posted 22/03/2010, 14:38
#25
Posted 22/03/2010, 14:46
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
Posted 22/03/2010, 14:56
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?
#27
Posted 22/03/2010, 14:58
Esse $nome é uma variavel:
$nome = $_FILES['arquivo']['name'];
Edição feita por: dmw, 22/03/2010, 15:00.
#28
Posted 22/03/2010, 15:15
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.
#29
Posted 22/03/2010, 15:21
Flw...
Abraço....
#30
Posted 26/03/2010, 08:53
Alguem pode me ajudar ???
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)