我有一个简单的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);
答案 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)和 上传该档案。另一方面,只需将存档解压缩到 目标目录。