dongyi6269 2017-07-05 12:06
浏览 170
已采纳

如何使用ftp连接通过PHP cURL上传文件?

I am using this script to upload myfile by curl function and ftp connection.

In local it works fine but in my server file is appeared uploaded but it have zero file size.

what is wrong? Thank You.

$ch = curl_init();
$localfile = (dirname(__FILE__).'/asset/myfile.zip');
$fp = fopen($localfile, 'r');
curl_setopt($ch, CURLOPT_URL, "ftp://$user_name:$user_pass@$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);

and also how can I upload multiple files in this script like:

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

2条回答 默认 最新

  • douxian1892 2017-07-05 12:28
    关注

    To upload the file in curl you can use the curl_file_create.Try the below one:

    $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:$user_pass@$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);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?