Ir para conteúdo
Fórum Script Brasil
  • 0

upload de imagem servidores diferentes


opeta

Pergunta

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



<?php
error_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 por opeta
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

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 porque

por favor me ajudem

Editado por opeta
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...