2017-07-05 153 views
1

我正在使用此脚本通过curl函数和ftp连接来上传myfile。如何使用ftp连接通过PHP cURL上传文件?

在本地它工作正常,但在我的服务器文件出现上传,但它没有文件大小。

有什么不对?谢谢。

$ch = curl_init(); 
$localfile = (dirname(__FILE__).'/asset/myfile.zip'); 
$fp = fopen($localfile, 'r'); 
curl_setopt($ch, CURLOPT_URL, "ftp://$user_name:[email protected]$server/".'myfile.zip'); 
curl_setopt($ch, CURLOPT_UPLOAD, 1); 
curl_setopt($ch, CURLOPT_INFILE, $fp); 
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile)); 
curl_exec ($ch); 
curl_close ($ch); 

,以及如何我可以上传多个文件中的脚本,如:

$localfile1 = (dirname(__FILE__).'/asset/myfile1.zip'); 
$localfile2 = (dirname(__FILE__).'/asset/myfile2.zip'); 
$localfile3 = (dirname(__FILE__).'/asset/myfile3.zip'); 

回答

2

上传文件中卷曲你可以使用curl_file_create。尝试下面的一个:

$localfile = (dirname(__FILE__).'/asset/myfile.zip'); 
$curl_file = curl_file_create($localfile,'zip'); 
$params = ['file' => $curl_file]; 

$ch = curl_init(); 
$localfile = (dirname(__FILE__).'/asset/myfile.zip'); 
$fp = fopen($localfile, 'r'); 
curl_setopt($ch, CURLOPT_URL, "ftp://$user_name:[email protected]$server/".'myfile.zip'); 
curl_setopt($ch, CURLOPT_UPLOAD, 1); 
//curl_setopt($ch, CURLOPT_INFILE, $fp); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $params); 
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile)); 
curl_exec ($ch); 
curl_close ($ch);