2017-04-07 128 views
1

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

我的代码:

$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

通过卷曲发送目录名。例如:

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

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

在另一边使用PHP函数 mkdir

记住要传递的路径与文件保存的目录 结构只是创建一个目录

方法2

只是传递一个文件路径与文件数据:

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

在另一边解析“路径”,并创建所有必需的目录。

方法3

创建目录(例如,tar.gz的)和 的档案上载档案。另一方面,将档案解包到目标目录 。