2012-06-12 68 views
2

我想上傳一個完整的文件夾到使用PHP的Web服務器上。上傳一個文件夾與PHP的Ajax完全相同

我們選擇目錄,如:

  .\ 
      |-Hello.txt 
      |-Filen.jpg 
      |-anotherfile.png 
      |-File with Spaces.ext 
      |-Folder -\ 
        |-A file in a Folder.txt 
        |-Anohter Folder in Folder 
           -\ 
           |-A file.ext 

那麼就應該被上傳爲:

web-www/ 
      |-Hello.txt 
      |-Filen.jpg 
      |-anotherfile.png 
      |-File with Spaces.ext 
      |-Folder -/ 
        |-A file in a Folder.txt 
        |-Anohter Folder in Folder 
           -/ 
           |-A file.ext 

這意味着它應該保留的文件夾順序的是,同時上傳到網絡服務器。

我曾嘗試使用一些PHP腳本(其中之一是this)。但它會將所有文件(位於文件夾或其他子文件夾中)上傳到同一位置。有一個進度條會很好。請幫幫我!!

+0

據我所知,任何UA永遠不會讓你得到關於使用HTML5的本地文件系統的信息。它可能是可行的使用Java小程序或甚至在Flash中。 –

+0

如果我們提供諸如文件選擇菜單之類的信息怎麼辦? (也是我在腳本中指定的腳本允許在基於webkit的瀏覽器上選擇一個文件夾) –

+0

不,AFAIK瀏覽器的文件信息對話框只是瀏覽器幫助選擇一條路徑。任何腳本都完全無法訪問。有充分的理由,考慮隱私。如果任何網站可以讀取我的文件結構,我會立即停止使用互聯網。 :)你鏈接的腳本演示只是在我的盒子上打開一個對話框。 –

回答

0

我99%確定你不能這樣做,即使使用html5。

最佳解決方案是歸檔文件和文件夾並在服務器上進行管理,但ajax無法上傳文件夾。

+0

除了Ajax之外的其他東西,就像POST將數據發送到PHP Script一樣? –

+0

除了存檔..我不這麼認爲.. –

2

完全有可能。我一直在玩它一段時間,建立一個ajax文件夾上傳我的一個小應用程序正在建設。

我討厭這麼說,但我不相信(截至目前爲止),這在webkit瀏覽器之外是可能的。

但是可以使用webkitRelativePath來實現。

http://sapphion.com/2012/06/keep-directory-structure-when-uploading/

+0

正如在例子中說的,我準備了一個腳本,但它沒有工作,也許我做了錯誤的事情。你可以給我一個例子腳本相同(看看我的錯誤是什麼,或者它實際上是可能的)。 –

+0

你能分享你當前的代碼嗎? 我可以修改它,或者至少提供一個更相關的例子。 – Alan

+0

它像我的PHP腳本部分缺少一些東西。我使用了相同的HTML,並且還包含了用於調試(控制檯輸出)的Javascript,但它又將所有文件上傳到同一位置。你可以請給我一個PHP腳本上傳(其他東西會很好,如果不是PHP)?我使用這個PHP是最簡單的'$ target =「files /」; $ target = $ target。 basename($ _FILES ['files'] ['name']); $ ok = 1; if(move_uploaded_file($ _ FILES ['files'] ['tmp_name'],$ target)) { echo「The file」。 basename($ _FILES ['uploadedfile'] ['name'])。 「已上傳」; } else { echo「Error !.」; }' –