我试图在ftp连接中使用php上传一个zip文件。只有zip正在上传,但zip文件夹中没有文件夹或文件。
以下是我尝试的代码:
$host = 'Your Ftp host';
$usr = 'Your Ftp User Name';
$pwd = 'Your Ftp password';
// file to move:
$local_file = 'C:\wamp\www\demo.zip';
$ftp_path = '/demo.zip';
// connect to FTP server (port 21)
$conn_id = ftp_connect($host, 21) or die ("Cannot connect to host");
// send access parameters
ftp_login($conn_id, $usr, $pwd) or die("Cannot login");
// turn on passive mode transfers (some servers need this)
ftp_pasv ($conn_id, true);
// perform file upload
$upload = ftp_put($conn_id,$ftp_path,$local_file, FTP_ASCII);
// check upload status:
print (!$upload) ? 'Cannot upload' : 'Upload complete';
print "\n";
/*
** Chmod the file (just as example)
*/
// If you are using PHP4 then you need to use this code:
// (because the "ftp_chmod" command is just available in PHP5+)
if (!function_exists('ftp_chmod')) {
function ftp_chmod($ftp_stream, $mode, $filename){
return ftp_site($ftp_stream, sprintf('CHMOD %o %s', $mode, $filename));
}
}
// try to chmod the new file to 666 (writeable)
if (ftp_chmod($conn_id, 0644, $ftp_path) !== false) {
print $ftp_path . " chmoded successfully to 644\n";
} else {
print "could not chmod $file\n";
}
// close the FTP stream
ftp_close($conn_id);
请给我一个解决方案,我试图在过去3天内做到这一点..
答案 0 :(得分:0)
如果文件出现在服务器上,但文件的大小/内容不正确,则可能是传输模式(FTP_ASCII或FTP_BINARY)有问题。
尝试用以下代码替换您的put行:
// perform file upload
$upload = ftp_put($conn_id,$ftp_path,$local_file, FTP_BINARY);