Ir para conteúdo

POWERED BY:

Arquivado

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

Mehow

[Resolvido] Erro ao enviar arquivo por FTP usando PHP

Recommended Posts

Nesse aplicativo tenho que conectar no FTP do site que eu quero enviar o arquivo (eu acesso pela area administrativa mas quando enviar o arquivo tem que cair na pasta FTP do site do mercado no qual estou acessando, os dados de FTP cadastrei no banco de dados)

O problema é que está dando erro, não está enviando o arquivo para a pasta que defini. Alguem poderia me dar uma ajuda?

(O que está de negrito são as duas linhas que estão com erro)

 

ERRO:

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to access jornalofertas/img_191009_111637.jpg in /home2/williart/public_html/mercados/envia.php on line 35

Arquivo nome novo: img_191009_111637.jpg

Warning: ftp_put() [function.ftp-put]: Unable to access jornalofertas/img_191009_111637.jpg in /home2/williart/public_html/mercados/envia.php on line 60

 

Warning: ftp_put(jornalofertas/img_191009_111637.jpg) [function.ftp-put]: failed to open stream: Permission denied in /home2/williart/public_html/mercados/envia.php on line 60

Nesse aplicativo tenho que conectar no FTP do site que eu quero enviar o arquivo (eu acesso pela area administrativa mas quando enviar o arquivo tem que cair na pasta FTP do site do mercado no qual estou acessando, os dados de FTP cadastrei no banco de dados)
O problema é que está dando erro, não está enviando o arquivo para a pasta que defini. Alguem poderia me dar uma ajuda?
(O que está de negrito são as duas linhas que estão com erro)

ERRO:
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to access jornalofertas/img_191009_111637.jpg in /home2/williart/public_html/mercados/envia.php on line 35
Arquivo nome novo: img_191009_111637.jpg
Warning: ftp_put() [function.ftp-put]: Unable to access jornalofertas/img_191009_111637.jpg in /home2/williart/public_html/mercados/envia.php on line 60

Warning: ftp_put(jornalofertas/img_191009_111637.jpg) [function.ftp-put]: failed to open stream: Permission denied in /home2/williart/public_html/mercados/envia.php on line 60

<?
$path_local = "padrao.php";
include("db.php");

$xidmercado = $_POST['xidmercado'];

if($envia_jornal=='SIM'){
$arq = $_FILES['file1'];
$xarquivo = $arq['name'];

echo "<pre>";
print_r($arq);
echo "</pre>";
echo "<br> Nome arquivo: ".$xarquivo;

if($arq['name'] ==''){
$arq = md5(uniqid(rand(),true)).'.jpg';
} else {
$servertime = time();
$second = date("s", ($servertime));
$minute = date("i", ($servertime));
$hour = date("H", ($servertime));
setlocale(LC_TIME,pt_BR);
$xdataimg = strftime("%d/%m/%Y"); 
$day = substr($xdataimg,0,2);
$month = substr($xdataimg,3,2);
$year = substr($xdataimg,8,2);
$xarquivo = "img_".$day.$month.$year.'_'.$hour.$minute.$second.'.jpg';
$imagemDir = "jornalofertas/" . $xarquivo;
move_uploaded_file($arq['tmp_name'], $imagemDir); 
echo "Arquivo nome novo: ".$xarquivo;
}
}
$sql = mysql_query("select * from mercados_nome where id = '$xidmercado'");
while($linha = mysql_fetch_array($sql)){
$diretorio = $linha['root'];
$ftp_ip = $linha['ftp_ip'];
$ftp_user = $linha['ftp_user'];
$ftp_senha = $linha['ftp_senha'];
}

$login = "$ftp_user"; // recebe usuario
$senha = "$ftp_senha"; // recebe senha

$ftp_server = "$ftp_ip"; // recebe dados de conexão
$conn_id = ftp_connect($ftp_server);// conecta

$arqLocal = "jornalofertas/".$xarquivo; //diretorio local onde está o arquivo
$arqServidor = "jornalofertas/".$xarquivo; // diretorio no servidor para onde vai mandar o arquivo

$login_result = ftp_login($conn_id,$login,$senha); // conecta no FTP

$dir = ftp_chdir($conn_id,"httpdocs/jornalofertas/"); // entra no diretorio do ftp
$upload = ftp_put($conn_id, "$arqServidor", "$arqLocal", FTP_BINARY); // upload do arquivo 
if (!$upload) { 
//echo "<font color='red'>O upload do arquivo <b>$arqLocal</b> falhou!</font><br>"; 
} else { 
//echo "Upload do arquivo <b>$arqLocal</b> realizado com sucesso.<br>"; 
} 


echo "O diretório atual agora é: " . ftp_pwd($conn_id) . "";
//hora de listar o conteudo(arquivos e diretorios) do diretorio atual
$buff = ftp_nlist($conn_id, ftp_pwd($conn_id));
//caso de erro
if(!$buff)
{
echo "Erro ao listar conteudo do diretorio";
exit;
}
else
{ //rotina listar conteudo do diretorio do FTP
echo "listando conteudo do diretorio -> ".ftp_pwd($conn_id)."";
$quantidade = count($buff);
for($i=0;$i<$quantidade;$i++)
{ 
echo "<br>local: ".$arqLocal."<br>";
echo "<br>servidor: ".$arqServidor."<br>";

echo "<pre>";
echo $buff[$i]."";
echo "</pre>";
}
ftp_quit($conn_id); // fecha conexão com servidor de FTP 
}
?> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

se deu a permissão 0777 no diretório ?

 

sim a permissão está 0777

 

consegui resolver o problema, o que estava dando errado era o caminho do arquivo local que ele não estava achando, é que os arquivos de administração ficam em uma pasta, ja onde eu queria pegar a imagem fica em uma outra pasta em outro local do pc onde estão todos os sites, daí eu coloquei para pegar o endereço temporario da imagem na hora do upload e deu certo

 

<?
  foreach($_POST             AS $key => $value) { ${$key} = $value; }
  foreach($_GET              AS $key => $value) { ${$key} = $value; }

error_reporting(E_ALL);


?>
<div align="center">
<?
$path_local = "padrao.php";
include("db.php");

$xidmercado = $_POST['xidmercado'];

if($envia_jornal=='SIM'){
   $arq = $_FILES['file1'];
   $xarquivo = $arq['name'];
   $xarquivo2 = 'X';
   $xtemp = $arq['tmp_name'];
   
if($arq['name']  ==''){
      $arq = md5(uniqid(rand(),true)).'.jpg';
} else {
	  $imagemDir = $xtemp;
	  move_uploaded_file($xarquivo, $imagemDir); 

  }
}

	$sql = mysql_query("select * from mercados_nome where id = '$xidmercado'");
		while($linha = mysql_fetch_array($sql)){
			$tabela = $linha['tabela'];
			$tabela2 = $linha['tabela2'];
			$tabela3 = $linha['tabela3'];
			$diretorio = $linha['root'];
			$ftp_ip = $linha['ftp_ip'];
			$ftp_user = $linha['ftp_user'];
			$ftp_senha = $linha['ftp_senha'];
	  }
	$login = "$ftp_user"; // recebe usuario
	$senha = "$ftp_senha"; // recebe senha
	
	$ftp_server = "$ftp_ip"; // recebe dados de conexão
	$conn_id = ftp_connect($ftp_server);// conecta
	
	$arqLocal = "jornalofertas/".$xarquivo; //diretorio local onde está o arquivo
	$arqServidor = basename("jornalofertas/".$xarquivo); // diretorio no servidor para onde vai mandar o arquivo

	$login_result = ftp_login($conn_id,$login,$senha); // conecta no FTP

	$dir = ftp_chdir($conn_id,"$diretorio"); // entra no diretorio do ftp
			$upload = ftp_put($conn_id, $xarquivo, $xtemp, FTP_BINARY); // upload do arquivo 
			if (!$upload) {  
				//echo "<font color='red'>O upload do arquivo <b>$arqLocal</b> falhou!</font><br>"; 
			} else { 
				//echo "Upload do arquivo <b>$arqLocal</b> realizado com sucesso.<br>"; 
				} 	
	ftp_quit($conn_id); // fecha conexão com servidor de FTP 
	
   $xinicio   = $xinicio_ano."-".$xinicio_mes."-".$xinicio_dia;
   $xfim      = $xfim_ano."-".$xfim_mes."-".$xfim_dia;
   $host 	  = $xip;
   $usuario   = $xuser;
   $senha 	  = $xsenha;
   $banco 	  = $xbanco;
   $tipo_banco = "mysql";
   
   $conecta = mysql_connect("$host","$usuario","$senha");
   mysql_select_db("$banco");
   
   //insere o Path no banco de dados 
   $insert = mysql_query("insert into $xtabela (id_oferta,id_cidade,titulo,rodape,imagem,php,inicio,fim) values ('$xidevento','$xcodcidade','$xtitulo','$xrodape','$xarquivo','$xarquivo2','$xinicio','$xfim')");
   
   $sql = mysql_query("SELECT id from $xtabela2 where id=$xcodcidade");
   $xqtos = mysql_num_rows($sql);
   if($xqtos==0){
      mysql_query("insert into $xtabela2 (id,cidade) values ('$xcodcidade','$xdescidade')");
   }
   $sql = mysql_query("SELECT id from $xtabela3 where id=$xidevento");
   $xqtos = mysql_num_rows($sql);
   if($xqtos==0){
      mysql_query("insert into $xtabela3 (id,oferta) values ('$xidevento','$xdesoferta')");
   }
   echo "<br><br><font face=arial color=black size=2><b>Jornal enviado !!!</b></font>";


?>
</div>	

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.