【问题标题】:Retrieve uploaded relativePath file on server side在服务器端检索上传的 relativePath 文件
【发布时间】:2018-01-07 05:52:38
【问题描述】:

我正在使用基于 jQuery-File-Upload 的 Primefaces(JSF 框架)的 fileUpload。由于 Firefox 或 Chrome 的新文件 API,我正在尝试使该组件支持拖放文件夹。 https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory#Example 到目前为止,由于 passthrough 属性,我已经能够实现它。

其中一个有趣的功能是“webkitRelativePath”,它允许知道上传文件的相对路径。

我想知道如何在服务器端检索此信息,以便使用此新信息创建一个对象。

感谢您的帮助。

【问题讨论】:

  • 如果你有它的客户端,你总是可以尝试通过将它作为参数“附加”到 ajax 调用来将它发送到服务器。不确定这是否有效,但有可能。

标签: jsf primefaces jquery-file-upload


【解决方案1】:

我刚刚从 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 对象中检索它,手指交叉...

【讨论】:

  • 我使用了一个技巧,而不是 file.uploadName || file.name 我写了这个 file.webkitRelativePath || file.name 因为 uploadName 似乎不是有效的属性,而 webkitRelativePath "is"(不是标准功能)
  • 另一个技巧是给FormData添加一个新的参数,并让key以“-webkitRelativePath”为后缀,然后服务器端,如果key存在,你试试
  • 实际上有一个文档在讨论这个问题github.com/blueimp/jQuery-File-Upload/wiki/…,但是在 JSF 中引入这个看起来并不那么简单
猜你喜欢
  • 1970-01-01
  • 2012-03-19
  • 1970-01-01
  • 1970-01-01
  • 2014-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-07
相关资源
最近更新 更多