2017-04-07 145 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的)和 的檔案上載檔案。另一方面,將檔案解包到目標目錄 。