opeta Postado Fevereiro 24, 2011 Denunciar Share Postado Fevereiro 24, 2011 (editado) galera tenho um problema que gostaria de resolver gostaria de fazer upload de imagens de um servidor para o outro e gravar no banco de dados.exemplo servidor A manda imagem para o servidor B e é gravado no banco de dados do servidor A o nome da imagem, a data de envio e a id do usuário.pensei em fazer via ftp consegui enviar, mais não gravar no banco de dados aqui esta o código:upload-ftp.php<?phperror_reporting(E_ALL|E_STRICT);require_once("conexao.php");$servidor = "ftp.meusite.com";$usuario = "meu user";$senha = "minha senha";$con = ftp_connect($servidor) or die("Erro ao conectar");$log = ftp_login($con, $usuario, $senha) or die("Erro ao conectar com usuário e senha");$nome_f = $_FILES['arquivo']['name'];$nome_t = $_FILES['arquivo']['tmp_name'];$size_f = $_FILES['arquivo']['size'];$size_p = 10240000; //10 MB$info_f = pathinfo($nome_f);$exte_f = $info_f['extension'];//Extensões permitidas$exte_p = array("jpg", "jpeg", "png", "gif"); $dir = "public_html/upimg/";if($size_f <= $size_p) { if(in_array($exte_f, $exte_p)) { if(ftp_put($con, $dir . $nome_f, $nome_t, FTP_BINARY)) { ftp_rename($con, $dir . $nome_f, $dir . substr(md5(time()), 0, 10) . "." . $exte_f); mysql_query("INSERT INTO imagem (nome, userid, added) VALUES (".substr(md5(time()), 0, 10) . "." . $exte_f.", '2', NOW())"); $end = "http://www.meusite.com.br/upimg/"; $dir2 = "".substr(md5(time()), 0, 10) . "." . $exte_f.""; $cam = "".$end."".$dir2.""; echo "Arquivo <b>" . $nome_f . "</b> enviado com sucesso! ".$cam.""; }else{ echo "Erro ao enviar o arquivo " . $nome_f . "!"; } }else{ echo "Extensão inválida!"; } }else{ echo "Tamanho excedido!<br>Tamanho permitido: <b>" . ceil($size_p / 1024 / 1024) . "MB</b>";}ftp_close($con);?>[/codebox] formulario.php[codebox]<html><body><form action="upload-ftp.php" method="post" enctype="multipart/form-data"><input name="arquivo" type="file"><br><input name="enviar" type="submit" value="Enviar!"></form></body></html>conexao.php<?$db_username = "meuuser";$db_password = "minhasenha";$db_name = "minhatabela";// DB Connection$db = mysql_connect("localhost", $db_username, $db_password);mysql_select_db($db_name, $db);?>[/codebox]se houver outra maneira por favor me ajudem Editado Fevereiro 24, 2011 por opeta Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 INTUITO_BINÁRIO Postado Março 6, 2011 Denunciar Share Postado Março 6, 2011 problema grande colega!o servidor a ser enviado não lhe deu permissão para o envio, você terá que pedir o pessoal da hospedagem para liberar conexões externas, ai dará.caso não consiga será impossível! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 opeta Postado Março 14, 2011 Autor Denunciar Share Postado Março 14, 2011 (editado) obrigado pela resposta meu amigo, esse servidor é meu .....rs já dei a permissão correta e resolvi estes problemas.agora estou com um outro problema gostaria de enviar mais de uma imagem por vez fiz tudo certinho mais só vai a primeira não sei porque. Aqui esta o código:$con = ftp_connect($servidor) or die("Erro ao conectar"); $log = ftp_login($con, $usuario, $senha) or die("Erro ao conectar com usuário e senha");$img = $_FILES['arquivo']; $countimg = count($img['name']); $id_a = $_POST["albuns"]; for ($i=0;$i<$countimg;$i++){ $nome_f = $img['name'][$i]; $nome_t = $img['tmp_name'][$i]; $size_f = $img['size'][$i]; $size_p = 2048000; //2 MB $info_f = pathinfo($nome_f); $exte_f = $info_f['extension']; echo $nome_f;//Extensões permitidas $exte_p = array("jpg", "JPG", "jpeg", "JPEG", "png", "PNG", "gif", "GIF", "swf", "SWF"); $dir = "public_html/upimg/$id/$id_a/"; if (!@ftp_nlist($con, $dir)) { ftp_mkdir($con, $dir); // cria o diretório se não existir } if($size_f <= $size_p) { //verifica o tamanho if(in_array($exte_f, $exte_p)) { // verifica a extensão if(ftp_put($con, $dir . $nome_f, $nome_t, FTP_BINARY)) { $md5 = substr(md5(time()), 0, 10); ftp_rename($con, $dir . $nome_f, $dir . $md5 . "." . $exte_f); $end = "http://www.meusite.com/upimg/$id/$id_a/"; $dir2 = $md5 . "." . $exte_f; $cam = "".$end."".$dir2.""; $data = date('Y-m-d H:i:s'); $ret = mysql_query("INSERT INTO imagem (nome, userid, added, idalbum) VALUES ('" . $dir2 . "', '".$CURUSER['id']."', '$data', '$id_a')")or die(mysql_error()); //redireciona em 2 segundos header("Refresh: 2;url=mostra-imagens2.php"); show_error_msg("Sucesso:","Arquivo <b>" . $nome_f . "</b> enviado com sucesso! <br /> A url da sua imagem é:<br /><br />".$cam."<br><br> Redirecionando em 2 segundos...",1); } else { header("Refresh: 2;url=mostra-imagens2.php"); show_error_msg("Erro:","Erro ao enviar o arquivo " . $nome_f . "!<br><br> Redirecionando em 2 segundos...",1); } } elseif ($exte_p != '') { header("Refresh: 2;url=mostra-imagens2.php"); show_error_msg("Erro:","Erro extensão inválida!<br><br> Redirecionando em 2 segundos...",1); } } else { header("Refresh: 2;url=mostra-imagens2.php"); show_error_msg("Erro:","Erro Tamanho excedido!<br>Tamanho permitido: <b>" . ceil($size_p / 1024 / 1024) . "MB</b><br><br> Redirecionando em 2 segundos...",1); }ftp_close($con);}[/codebox]fiz um echo mais realmente só recupera o primeiro arquivo não sei porquepor favor me ajudem Editado Março 16, 2011 por opeta Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
opeta
galera tenho um problema que gostaria de resolver gostaria de fazer upload de imagens de um servidor para o outro e gravar no banco de dados.
exemplo servidor A manda imagem para o servidor B e é gravado no banco de dados do servidor A o nome da imagem, a data de envio e a id do usuário.
pensei em fazer via ftp consegui enviar, mais não gravar no banco de dados aqui esta o código:
upload-ftp.php
formulario.php
<html>
<body>
<form action="upload-ftp.php" method="post" enctype="multipart/form-data">
<input name="arquivo" type="file">
<br>
<input name="enviar" type="submit" value="Enviar!">
</form>
</body>
</html>
conexao.php
se houver outra maneira por favor me ajudem
Editado por opetaLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.