预填充文件输入

时间:2016-08-10 03:50:18

标签: javascript php html5 file-upload

我正在创建一个将用户应用程序提交到第三方站点的工作板站点。用户在申请时必须提供以下信息:姓名,联系方式和简历。由于这些字段也可以在网站上的用户个人资料中使用,我们希望预先填写表单字段,允许用户根据需要更改信息。

现在,可以填充所有其他字段而不会出现问题。但是,由于安全性违规,无法填充文件输入字段。是否可以使用FILE APIBLOB对象进行解决?

我打算做的事情如下:

  1. 从服务器上的文件URL创建blob对象
  2. 使用FileReader将blob作为数组缓冲区读取。
  3. 将此文件附加到文件输入字段< - 这是我无法弄清楚并需要帮助的。
  4. 此外,如果有任何替代方法可以实现此目的,请告诉我。我正在使用PHPJavaScript来生成表单,因此我可以在PHP中进行预处理。

2 个答案:

答案 0 :(得分:2)

  
      
  1. 将此文件附加到文件输入字段< - 这是我无法弄清楚并需要帮助的。
  2.   

无法在<input type="file">元素的FileList对象处设置值。

您可以创建File对象并将其附加到FormData对象,并使用FormData

提交XMLHttpRequest()
var data = new FormData();
data.append("file", /* Blob | File */, "filename.ext")

答案 1 :(得分:0)

创建答案只是为了更深入地了解我是如何解决这个问题的,以及为什么首先出现问题。

后台:我为客户端创建了一个自定义WordPress插件,该插件从各个站点获取作业应用程序,并以内联方式显示它们。我们还允许提交申请,用户可以附上他们的简历,并将其提交给原始职位发布。由于很多用户在他们的手机上访问该网站,他们没有相同的简历。在这种情况下,我们希望为他们提供使用存储在其个人资料中的简历的工具。

潜在解决方案:最简单的方法是从用户的个人资料中通过ajax获取文件内容,并在提交前将其附加到表单。然而,无论出于何种原因,这都行不通。

应用解决方案:有效的解决方案是相当古老的学校。我们没有直接提交申请,而是将其提交到中间页面,该页面从用户的个人资料中提取文件内容,修改表单数据并通过curl提交。这也保存了用户端的双重数据交换(文件下载和重新上传)。