PHP cURL - 如何上传文件夹?

时间:2017-04-07 19:01:14

标签: php curl

我有一个简单的PHP脚本,可以扫描整个目录并上传所有文件。但我希望它上传文件夹以及。 (并保留文件夹结构)我该怎么做?

我的代码:

$dir = 'Test/';

$di = new RecursiveDirectoryIterator($dir);

$ch = curl_init('https://website.com');
curl_setopt($ch, CURLOPT_URL,'https://website.com');
curl_setopt($ch, CURLOPT_POST,1);

foreach (new RecursiveIteratorIterator($di) as $filename => $file) {

    echo $filename;
    $cFile = curl_file_create($filename);
    $post = array('file'=> $cFile);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    $result=curl_exec ($ch);
}

curl_close ($ch);

1 个答案:

答案 0 :(得分:1)

您不能只上传目录,因为它不是您可以在任何地方上传的信息类型。但是,几乎没有最简单的方法。

方法1

  

通过cURL发送目录名称。例如:

$post = array('dir'=> $someDirectoryName);
     

另一方面,只需使用PHP函数创建一个目录   mkdir

     

请记住在您的文件中传递路径以保留目录   结构:

$post = array('file'=> $cFile, 'path' => $somePath);

方法2

  

只需传递包含文件数据的文件路径:

$post = array('file'=> $cFile, 'path' => 'dir1/subdir2/filename.ext');
     

另一方面解析'path'并创建所有必需的目录。

方法3

  

创建目录的存档(例如,tar.gz)和   上传该档案。另一方面,只需将存档解压缩到   目标目录。