Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DannyND

Enviar mesmo arquivo para 2 server diferentes FTP PHP

Recommended Posts

Tem, faça duas conexões com os servidores e envie os arquivos, o próprio manual tem exemplos de conexão com FTP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uso uma função para salvar os arquivos e gerar outras dimensões, não tenho conexão com FTP.

PHP

$foto1 = $_FILES['ds_imagem1'];
$ext1  = pathinfo($_FILES[ds_imagem1][name], PATHINFO_EXTENSION);//pega extenso do arquivo
$name1 = $cd_produto."_1.".$ext1;
$name11 = $cd_produto."_1";

Redimensionar($foto1, $name11, 150, "imgp/vitrine"); #imagem 150x150
Redimensionar($foto1, $name11, 300, "imgp/produto"); #imagem 300x300
Redimensionar($foto1, $name11, 75,  "imgp/thumb");	#imagem 75x75
Redimensionar($foto1, $name11, 600, "imgp/zoom");    #imagem 600x600

Função:

<?php
function Redimensionar($imagem, $name, $largura, $pasta){

	if ($imagem['type']=="image/jpeg"){
		$img = imagecreatefromjpeg($imagem['tmp_name']);
	}else if ($imagem['type']=="image/pjpeg"){
		$img = imagecreatefromjpeg($imagem['tmp_name']);
	}else if ($imagem['type']=="image/gif"){
		$img = imagecreatefromgif($imagem['tmp_name']);
	}else if ($imagem['type']=="image/png"){
		$img = imagecreatefrompng($imagem['tmp_name']);
	}

	$x = imagesx($img);
	$y = imagesy($img);
	$altura = ($largura * $y)/$x;
	
	$nova = imagecreatetruecolor($largura,$altura);
	
	imagecopyresampled($nova, $img, 0, 0, 0, 0, $largura, $altura, $x, $y);
	
	if ($imagem['type']=="image/jpeg"){
		$local="$pasta/$name".".jpg";
		imagejpeg($nova, $local);
	}else if ($imagem['type']=="image/pjpeg"){
		$local="$pasta/$name".".jpg";
		imagejpeg($nova, $local);
	}else if ($imagem['type']=="image/gif"){
		$local="$pasta/$name".".gif";
		imagejpeg($nova, $local);
	}else if ($imagem['type']=="image/png"){
		$local="$pasta/$name".".png";
		imagejpeg($nova, $local);
	}	

	imagedestroy($img);
	imagedestroy($nova);
	
	return $name;		
}
?>

Tentei alterar apenas o caminho da imagem, mas não funcionou.

Imagem no server1: Redimensionar($foto1, $name11, 150, "imgp/vitrine"); #imagem 150x150
Imagem no server2: Redimensionar($foto1, $name11, 150, "http://www.meusite.com.br/sistema/imgp/vitrine"); #imagem 150x150

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui seguindo um modelo que achei na net.

O problema era a permissão chmod.

<?php
$host = "seuhost";
$usr  = "seulogin";
$pwd  = "suasenha";

// file to move:
$local_file = './imgp/imagem.jpg'; #caminho da imagem de origem
$ftp_path = './pasta_destino/imgp/imagem.jpg'; #caminho para upar imagem
 
// connect to FTP server (port 21)
$conn_id = ftp_connect($host, 21) or die ("Cannot connect to host");
 
// send access parameters
ftp_login($conn_id, $usr, $pwd) or die("Cannot login");
 
// turn on passive mode transfers (some servers need this)
// ftp_pasv ($conn_id, true);
 
// perform file upload
$upload = ftp_put($conn_id, $ftp_path, $local_file, FTP_ASCII);
 
// check upload status:
print (!$upload) ? 'Cannot upload' : 'Upload complete';
print "\n";
 
/*
** Chmod the file (just as example)
*/
 
// If you are using PHP4 then you need to use this code:
// (because the "ftp_chmod" command is just available in PHP5+)
if (!function_exists('ftp_chmod')) {
   function ftp_chmod($ftp_stream, $mode, $filename){
        return ftp_site($ftp_stream, sprintf('CHMOD %o %s', $mode, $filename));
   }
}
 
// try to chmod the new file to 666 (writeable)
if (ftp_chmod($conn_id, 0666, $ftp_path) !== false) {
    print $ftp_path . " chmoded successfully to 666\n";
} else {
    print "could not chmod $file\n";
}
 
// close the FTP stream
ftp_close($conn_id);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.