2017-07-31 68 views
0

我使用基於jQuery-File-Upload的Primefaces(JSF框架)中的fileUpload。我試圖讓這個組件支持拖動&拖放文件夾,這要感謝Firefox或Chrome的新File API。 https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory#Example到目前爲止,我已經能夠通過passthrough屬性來實現它。檢索服務器端上傳的relativePath文件

有趣的功能之一是「webkitRelativePath」,它允許知道上傳文件的相對路徑。

我在想如何在服務器端檢索這個信息,所以我可以用這個新信息創建一個對象。

感謝您的幫助。

+0

如果你有它的客戶端,你總是可以嘗試將它'附加'到服務器上ajax調用作爲參數。不知道這是否有效,但這是一種可能性。 – Kukeltje

回答

0

嗯,我剛讀fileupload.js他:

_initXHRData: function (options) { 
    ... 
    formData.append(
    ($.type(options.paramName) === 'array' && 
      options.paramName[index]) || paramName, 
      file, 
      file.uploadName || file.name 
    ); 
    ... 
} 

(含文件webKitRelativePath)

所以我猜這個信息已經傳遞給服務器,你不覺得嗎?因爲我使用Servlet 3.0,所以我應該可以從Part對象中取回它,手指交叉...

+0

我使用了一個技巧,而不是'file.uploadName || file.name'我寫了'file.webkitRelativePath || file.name'因爲uploadName似乎不是有效的屬性,而webkitRelativePath「是」(不是標準功能) – Rapster

+0

另一個訣竅是向FormData添加一個新的參數,並使關鍵詞後綴爲「-webkitRelativePath」,然後服務器端,你有一個嘗試,如果鑰匙存在 – Rapster

+0

有一個文件談論這實際上https://github.com/blueimp/jQuery-File-Upload/wiki/How-to-submit-additional-form-data,但它在JSF中看起來並不那麼簡單 – Rapster

相關問題