【问题标题】:PHP cURL - How to upload folders?PHP cURL - 如何上传文件夹?
【发布时间】:2017-04-08 03:29:50
【问题描述】:

我有一个简单的 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);

【问题讨论】:

    标签: php curl


    【解决方案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');
    

    另一方面,解析“路径”并创建所有需要的目录。

    方法 3

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-29
      • 2011-05-07
      • 1970-01-01
      • 2011-10-02
      • 1970-01-01
      • 2013-03-15
      • 1970-01-01
      相关资源
      最近更新 更多