我可以毫无问题地将图像上传到我们的网站,特别是生成的二维码。我使用该代码来关注订购的产品,并将其与打印的个性化消息进行匹配,该消息也具有相同的二维码。 如果两个二维码不匹配,我要么添加了错误的产品,要么添加了错误的个性化设置,这样我就可以避免运送错误的商品和错误的个性化设置!
当前使用 FILEZILLA 手动将所有生成的 QR 码下载到工作 PC,以便另一个进程将 .png 图像添加到打印的个性化内容中。
我想我会创建一个简单的 PHP 来自动化这个过程,但我遇到了一个完全无法解释的错误,它连接了,我可以看到文件夹中的文件,我可以更改 CMOD 以检查我是否拥有所需的所有权限,但对于我不会将实际的 .png 文件下载到我的电脑(客户端),任何人都可以帮助解释为什么吗?
站点位于运行 PHP 7.4 的 Hostgator 服务器上,是否无法将 .PNG 图像从服务器下载到客户端 PC,即使 Filezilla 可以!
<?PHP
//ERROR REPORTING ON, NO ERRORS SHOW AT ALL
error_reporting(E_ERROR | E_WARNING | E_PARSE);
$qrcodigo1="3574975711.png"; // FILENAME I WANT TO TRANSFER
$source_file = "$qrcodigo1"; //ASSIGN TO SOURCEFILE STRING.
$destination_file = "C:\Users\*USER*\*MAIN-FOLDER-1*\*SUB-FOLDER-1*\*SKU-FOLDER1*\*PRODUCT-FOLDER1*\*PRODUCT-CODE-FOLDER"; // MY DESIRED HOME PC FILE LOCATION
$ftp_server = "ftp.XXXXXXXXXX.co.uk"; //SERVER
$ftp_user_name = "XXXXXX"; // USER
$ftp_user_pass = "XXXXXXXXXXXXXXXX"; //PASSWORD
// FTP CONNECTION, WORKS AND CONNECTS
$ftp = ftp_connect($ftp_server);
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);
ftp_pasv($ftp, true); // SET PASSIVE TO AVOID ISSUES
if ((!$ftp) || (!$login_result)) {
die("FTP connection has failed !");
}
// CHECK IS CONNECTED BY DUMPING DIRECTORY CONTENTS - WORKS FINE
ftp_chdir($ftp, "XXX/XXXXXXXX");
echo "Connected - Current directory is now:".ftp_pwd($ftp)."<br><br>";
$file_list = ftp_nlist($ftp, ".");
var_dump($file_list);
echo "<br><br>";
// CHECK CAN MODIFY FILES TO CONFIRM FILE PERMISSIONS - WORKS FINE
if (ftp_chmod($ftp, 0777, $source_file) !== false)
{
echo "Successfully chmoded $source_file to 777.<br><br>";
}
else
{
echo "chmod failed.<br><br>";
}
// DOWNLOAD FROM SERVER TO LOCAL PC, SAYS HAS DOWNLOADED, BUT NO FILE PRESENT?
// OUTPUT ON SCREEN SAYS "Successfully downloaded 3574975711.png to C:\Users\*USER*\*MAIN-FOLDER-1*\*SUB-FOLDER-1*\*SKU-FOLDER1*\*PRODUCT-FOLDER1*\*PRODUCT-CODE-FOLDER"
// WHERE IS FILE HEN? NO FILE IN FOLDER ??
if
(ftp_get($ftp, $destination_file, $source_file, FTP_BINARY))
{
echo "Successfully downloaded $source_file to $destination_file <br>";
}
else
{
echo "There was a problem while downloading $source_file <br>";
}
// CLOSE CONNECTION
ftp_close($ftp);
?>
虽然您的问题并不完全清楚,但
*PRODUCT-CODE-FOLDER
的 $destination_file
尾随部分表明它是通往目的地 文件夹的路径,而不是 文件(尽管有变量名称)。
ftp_get
在其两个参数中都采用文件路径,而不是文件夹路径。
所以应该这样做:
ftp_get($ftp, $destination_file . "\\" . $qrcodigo1, $source_file, FTP_BINARY)