Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php实现ftp连接的Uplaod Zip文件_Php_Upload_Ftp_Zipfile - Fatal编程技术网

使用php实现ftp连接的Uplaod Zip文件

使用php实现ftp连接的Uplaod Zip文件,php,upload,ftp,zipfile,Php,Upload,Ftp,Zipfile,我试图在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 ser

我试图在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天内一直在尝试这样做。

如果文件出现在服务器上,但文件的大小/内容不正确,则可能是传输模式(FTP\ U ASCII或FTP\ U二进制)有问题

尝试将put线路替换为:

// perform file upload
$upload = ftp_put($conn_id,$ftp_path,$local_file, FTP_BINARY);

尝试将ftp_路径更改为“./demo.zip”并查看它是否工作如果服务器不支持二进制模式,ftp_put命令将被忽略(无论如何,对于PHP5)。在服务器上关闭二进制模式后运行脚本时,我通过查看服务器日志发现了这一点。您的脚本在我的服务器上以二进制模式发送一个tar.gz文件,效果非常好(我猜还有其他大多数)。您使用的是什么类型的服务器?是的,您的脚本很好,它也可以在二进制模式的vsftpd服务器上工作。很可能是服务器问题。。。