我有一个PHP脚本,我连接到FTP并尝试将一些文件下载到我的服务器。
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
$ftp_username='x';
$ftp_userpass='xx';
// connect and login to FTP server
$ftp_server = "xxx";
$conn_id = ftp_connect($ftp_server)or die("Could not connect to $ftp_server");
$login_result = ftp_login($conn_id, $ftp_username, $ftp_userpass);
// Obtener los archivos contenidos en el directorio actual
$contents = ftp_nlist($conn_id, ".");
foreach ($contents as $file) {
$local_file = $file;
$server_file =$file;
// try download $server_file and save it in $local_file
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
echo "Everything OK\n";
} else {
echo "There is a problem\n";
}
}
}
ftp_close($conn_id);
此错误提示,文件无法下载:
警告:ftp_get():禁止的文件名:。\ Vivotek - GFSF123E-20180321-0850043966.jpg在C:\ xDEVSERVER \ eds-www \ conftp.php上... 有一个问题
我尝试将文件的名称更改为基本和简单(s.ete。0850043966.jpg),但错误仍然存在。有什么帮助吗?建议?
答案 0 :(得分:1)
这是因为您使用ftp_nlist
收到的文件名来命名本地存储的文件。
在您的情况下,ftp_nlist
收到的文件名具有前导.\
,这使得它们不适合本地存储。
您可以删除前缀:
$local_file = substr( $file, 2 );