【发布时间】:2015-06-20 05:46:38
【问题描述】:
我编写了一个脚本来将文件从我的计算机上传到外部服务器。但是我收到以下错误消息:
Warning: ftp_put(): Filename invalid
我曾尝试更改文件名等,但没有成功。 这是我的代码:
$ftp_server = "ipaddress";
$username = "username";
$password = "password";
$destination_file = 'C:\ftp_root\borna\ttt.txt';
$source_file = 'C:\inetpub\ftp_test.txt';
// setup basic connection
$conn_id = ftp_connect($ftp_server);
// check connection
if(!$conn_id){
print "FTP connection has failed.<br>";
}else{
print "FTP connection successfull.<br>";
}
// login with username and password
$login_result = ftp_login($conn_id, $username, $password);
// check login
if(!login_result){
print "FTP login credentials not recognised.<br>";
}else{
print "FTP login credentials recognised.<br>";
}
// upload our file
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
// read upload status
if(!$upload){
print "FTP upload has failed.<br>";
}else{
print "FTP upload was successfull on file $source_file to $destination_file via $ftp_server.<br>";
}
// close the ftp stream
ftp_close($conn_id);
【问题讨论】:
-
您正在使用
FTP_BINARY却试图上传一个 ASCII 文件。按照手册使用 FTP_ASCII php.net/manual/en/function.ftp-put.php -
嗯,所以要清楚。我什么时候应该用什么?如果您能形成一个答案,说明应该为哪些文件使用哪种传输模式,那就太好了。
-
我已将其更改为 FTP_ASCII,但仍然出现相同的错误。
-
您不需要转义文件名中的两个反斜杠吗? $source_file = "C:\inetpub\\ftp_test.txt";应该是 $source_file = "C:\\inetpub\\ftp_test.txt";或者你可以只使用单引号,然后不用担心转义反斜杠。
-
@ChipDean 试过了。仍然没有区别。
标签: php file-upload upload ftp