Erro No Upload
#1
Posted 18/03/2010, 09:29
Eu to fazendo um sistema de upload onde eu anexo 4 arquivos e salvo no servidor. Salvar no servidor esta tudo OK mas o problema é que nao esta salvando na pasta que eu quero.
E ainda da esse erro: Warning: ftp_put() expects parameter 1 to be resource, boolean given.
Alguem pode me ajudar ???
Grato....
----- Código -----
<?php
include "sql.php";
// Dados do servidor
$servidor = 'www.ubccriative.com.br'; // Endereço
$usuario = '*****'; // Usuário
$senha = '*****'; // Senha
if(isset($_POST["btnok"]))
{
// Abre a conexão com o servidor FTP
$ftp = ftp_connect($servidor); // Retorno: true ou false
// Faz o login no servidor FTP
$login = ftp_login($ftp,$usuario,$senha); // Retorno: true ou false
$properts = array();
$files = isset($_FILES["imagem"]) ? $_FILES["imagem"] : FALSE;
$loops = count($files["name"]);
$cont = 1;
if(is_array($files))
$array = array_diff($_FILES["imagem"]["name"], array(''));
$exito_1 = move_uploaded_file($files["tmp_name"], $outputPath.$files["name"]);
$status = ftp_put($login,'/imagem/'.$files["name"],$exito_1,FTP_ASCII);
for($i=0; $i<$loops; $i++)
{
$exito = move_uploaded_file($files["tmp_name"][$i], $outputPath.$files["name"][$i]);
$id = $_POST["txtnum"];
$sql = "INSERT INTO tab_documento_teste(id_doc,id_cliente,documento) VALUES ('$id[$i]','$ultimo','/imagem/".$files["name"][$i]."')";
$resultado = mysql_query($sql) or die(mysql_error());
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR...nsitional.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"><br />
Anexo: <input type="file" name="imagem[]" /><br /> <br />
Anexo: <input type="file" name="imagem[]"/><br /><br />
<input type="submit" name="btnok" id="btnok" value="OK"/>
</form>
</body>
</html>
- HaroNism likes this
#2
Posted 18/03/2010, 11:20
O endereço do seu servidor esta errado, você esta passando um HTTP para o ftp_connect, correto é passar o FTP (ftp.dominio.com.br)
Faça alteração e poste os resultados
PS: como teste adicional, neste momento
// Faz o login no servidor FTP $login = ftp_login($ftp,$usuario,$senha); // Retorno: true ou false
insira um dump para ver se ele realmente esta retornando true
// Faz o login no servidor FTP $login = ftp_login($ftp,$usuario,$senha); // Retorno: true ou false var_dump($login); exit;
Edição feita por: Max William, 18/03/2010, 11:22.
#3
Posted 18/03/2010, 11:20
http://php.net/manua...ion.ftp-put.php
Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens!
#4
Posted 18/03/2010, 11:35
Agr ta com esse erro: Warning: ftp_put(): Filename cannot be empty
O codigo fico assim:
<?php
include "sql.php";
// Dados do servidor
$servidor = 'ftp.ubccriative.com.br'; // Endereço
$usuario = '*****'; // Usuário
$senha = '*****'; // Senha
if(isset($_POST["btnok"]))
{
// Abre a conexão com o servidor FTP
$ftp = ftp_connect($servidor); // Retorno: true ou false
// Faz o login no servidor FTP
$login = ftp_login($ftp,$usuario,$senha); // Retorno: true ou false
$properts = array();
$files = isset($_FILES["imagem"]) ? $_FILES["imagem"] : FALSE;
$loops = count($files["name"]);
$cont = 1;
if(is_array($files))
$array = array_diff($_FILES["imagem"]["name"], array(''));
$exito_1 = move_uploaded_file($files["tmp_name"], $outputPath.$files["name"]);
//$status = @ftp_put($login,'/imagem/'.$files["name"],$exito_1,FTP_ASCII);
$status = @ftp_put($ftp,'/imagem/'.$files["name"],$exito_1,FTP_ASCII);
for($i=0; $i<$loops; $i++)
{
$exito = move_uploaded_file($files["tmp_name"][$i], $outputPath.$files["name"][$i]);
$sql = "INSERT INTO tab_documento_teste(id_doc,id_cliente,documento) VALUES ('$id[$i]','$ultimo','".$files["name"][$i]."')";
$resultado = mysql_query($sql) or die(mysql_error());
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR...nsitional.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">
Anexo: <input type="file" name="imagem[]" /><br /> <br />
Anexo: <input type="file" name="imagem[]"/><br /><br />
<input type="submit" name="btnok" id="btnok" value="OK"/>
</form>
</body>
</html>
#5
Posted 18/03/2010, 12:19
Faça alterações conscientes, antes de postar aqui que o codigo esta com problema.
Para o codigo funcionar a pasta tem que existir, caso contrario vai falhar.
Sim, existe função para criar diretorio, mas como não veio ao caso eu não a fiz.
<form name="teste" method="POST" action="" enctype="multipart/form-data">
<input type='file' name='arquivo' />
<br />
<input type='submit' name='enviar' />
</form>
<?php
if(isset($_POST['enviar']))
{
$ftp_server = 'ftp.dominio.com.br'; // Dominio FTP
$ftp_user_name = 'usuario'; // Login FTP
$ftp_user_pass = 'senha'; // Senha FTP
# 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'];
# Diretorio onde sera enviado
$diretorio = "/www/desenvolvimento/upload_ftp/";
# Caminho completo, diretorio + nome do arquivo
$destino = $diretorio."$nome";
# Determino quem é o cara a ser enviado
$file = $arquivo['tmp_name'];
# Efetuo o upload
$upload = ftp_put($conecta, $destino, $file, FTP_BINARY);
# Checagem para resultado
if(!$upload)
{
echo "FTP upload: falhou -> $destino";
}
else
{
echo "FTP upload: Enviado $file para $destino";
}
}
?>
#6
Posted 18/03/2010, 13:08
#7
Posted 18/03/2010, 13:27
Aqui você pode ter, 1 campo de upload como 10 campos de upload, funcionara da mesma forma.
<form name="teste" method="POST" action="" enctype="multipart/form-data">
<input type='file' name='arquivo[]' />
<br />
<input type='file' name='arquivo[]' />
<br />
<input type='file' name='arquivo[]' />
<br />
<input type='file' name='arquivo[]' />
<br />
<input type='submit' name='enviar' />
</form>
<?php
#################################
## Autor: Max William Vitorino ##
## Criado: 18/03/2010 as 13:35 ##
## Favor manter os creditos ##
#################################
if(isset($_POST['enviar']))
{
$ftp_server = 'ftp.projecta3.com.br'; // Dominio FTP
$ftp_user_name = '***'; // Login FTP
$ftp_user_pass = '***'; // Senha FTP
# 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 = "/www/desenvolvimento/upload_ftp/";
# 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);
# Checagem para resultado
if($upload == false)
{
$erro[$i] = "O arquivo $nome[$i] não pode ser enviado";
}
if($upload == true)
{
$sucesso[$i] = "Arquivo $nome[$i] foi enviado com sucesso";
}
}
$cont_erro = count($erro);
$cont_sucs = count($sucesso);
if($cont_erro >= 1)
{
for ($i=0; $i<$cont_erro;$i++)
{
echo $erro[$i]."<br />";
}
}
if($cont_sucs >= 1)
{
for ($i=0; $i<$cont_sucs;$i++)
{
echo $sucesso[$i]."<br />";
}
}
}
?>
#8
Posted 18/03/2010, 13:39
Vc sabe o pq q ocorre esse erro ????
#9
Posted 18/03/2010, 13:44
Veja se no name dos input tipo file, o name esta arquivo[]
#10
Posted 18/03/2010, 13:50
<form name="teste" method="POST" action="" enctype="multipart/form-data">
<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>
O estranho q da esse erro mas ele envia para a pasta certa.
#11
Posted 18/03/2010, 13:55
Ignora os Warning, eu fiz ele testando na web.. por isso não me apareceu isto.. warning são so avisos, nada que va influenciar no desempenho
#12
Posted 18/03/2010, 13:56
#13
Posted 18/03/2010, 14:00
Eu fiz ele no meu servidor e não recebi nenhum warning..
Aliais, não sei porque teu host mostra warning..
Agora vc me pego..
Fica meio dificil fixar erro quando ele não aparece =/ (no caso, pra mim)
#14
Posted 18/03/2010, 14:04
Muito obrigado !!!!
Flw...
Abraço...
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)










