2016-04-07 22 views
0

次のコードを見つけてください。これに加えて、私はmagentoウェブストアでこのスクリプトを実際に実行していることを忘れていますが、ファイル転送以外はすべて大丈夫ですので問題はありません。あるサーバーから別のサーバーにファイルとフォルダーを転送できません

<?php 
 
require_once('app/Mage.php'); 
 
Mage::app(); 
 
$products = Mage::getModel('catalog/product')->getCollection()->addAttributeToSelect('*'); 
 
$array1=array(); 
 
$array2=array(); 
 

 

 
echo $destination_dir = dirname(__FILE__); 
 

 

 
$remote_file = '/B303501/_Datenblatt.pdf';  
 
$ftp_server = "*******"; 
 
$ftp_user = "************"; 
 
$ftp_pass = "******"; 
 
$local_file = '/E212002M'; 
 

 
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server"); 
 

 
foreach ($products as $product) { 
 
    array_push($array1,$product->getData("sku")); 
 
    array_push($array2,$product->getData("image")); 
 
} 
 

 
// try to login 
 
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) { 
 
    //echo "Connected as [email protected]$ftp_server"; 
 
    ftp_pasv($conn_id, true); 
 

 
    if([email protected]('/B303501/_Datenblatt.pdf','/media/catalog/product/demo/')) 
 
\t { 
 
\t  $errors= error_get_last(); 
 
\t  echo "COPY ERROR: ".$errors['type']; 
 
\t  echo "<br />\n".$errors['message']; 
 
\t } else { 
 
\t  echo "File copied from remote!"; 
 
\t } 
 
    $i = 0; 
 
\t $contents = ftp_nlist($conn_id, "."); 
 
\t foreach ($contents as $cont) { 
 
\t \t if(in_array($cont,$array1)){ 
 
      echo $cont. "</br>"; 
 
      $buff = ftp_rawlist($conn_id, '/'.$cont.'/'); 
 
      
 
      echo "<pre>"; 
 
      print_r($buff); 
 
      echo "</pre>"; 
 
      $tobecopied = 'http://www.example.com/index.html'; 
 
      $target = $destination_dir . '/media/catalog/product/demo/'; 
 

 
      foreach($buff as $key){ 
 
       if([email protected]('/'.$cont.'/'.$key,'/media/catalog/product/demo/')) 
 
\t \t \t \t { 
 
\t \t \t \t  $errors= error_get_last(); 
 
\t \t \t \t  echo "COPY ERROR: ".$errors['type']; 
 
\t \t \t \t  echo "<br />\n".$errors['message']; 
 
\t \t \t \t } else { 
 
\t \t \t \t  echo "File copied from remote!"; 
 
\t \t \t \t } 
 
      } 
 

 

 
    $i++;  
 
     } 
 
\t } 
 
} else { 
 
    echo "Couldn't connect as $ftp_user\n"; 
 
}

私は別のサーバーにあるサーバーからのファイル転送中に次のエラーを取得しています。

ライブサーバーと私もログインに成功しましたが、ファイル転送中に何が起こっているのかわかりません。

以下はエラーです。

/var/www/clients/client348/web979/web 
 
COPY ERROR: 2 
 
copy(/B303501/_Datenblatt.pdf): failed to open stream: No such file or directoryB303501

すべてのヘルプは非常に感謝することでしょう。

上記の詳細情報が必要な場合はお知らせください。私はあなたがftp_getないcopyを使うべきだと思う

おかげ

+1

どのようにPHPに関連していますか? – Furgas

+0

私はPHPのスクリプトを使用して2つのライブサーバー間でファイルを転送する必要があるので、それはPHPの関連 –

+0

あなたが使用しているコードを提供してください。 – Furgas

答えて

2

ftp_getまたはcopyのいずれかが不足しているディレクトリを作成しないため、宛先にディレクトリ階層が存在することを確認してください。

+0

私はすでにそれを使用しますが、ファイルやフォルダを転送しません –

0

私は最終的にそれを並べ替える問題。私が使用しているftpは通常のftpですが、別のサーバにログインするには上記以外のSFTP認証が必要です。

ご協力ありがとうございます

関連する問題