请找到以下代码。除此之外,我忘了声明我实际上正在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 $ftp_user@$ftp_server";
ftp_pasv($conn_id, true);
if(!@copy('/B303501/_Datenblatt.pdf','/media/catalog/product/demo/'))
{
$errors= error_get_last();
echo "COPY ERROR: ".$errors['type'];
echo "<br />'n".$errors['message'];
} else {
echo "File copied from remote!";
}
$i = 0;
$contents = ftp_nlist($conn_id, ".");
foreach ($contents as $cont) {
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(!@copy('/'.$cont.'/'.$key,'/media/catalog/product/demo/'))
{
$errors= error_get_last();
echo "COPY ERROR: ".$errors['type'];
echo "<br />'n".$errors['message'];
} else {
echo "File copied from remote!";
}
}
$i++;
}
}
} 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
。还要确保目录层次结构存在于您的目的地,因为ftp_get
或copy
都不会为您创建丢失的目录。
我终于解决了这个问题。我使用的ftp只是普通的ftp,但为了登录到另一台服务器,你需要SFTP凭据,除非以上都处于工作模式。
感谢您对的支持