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)