如何预填充文件输入

How can I prepopulate a file input?

本文关键字:输入 文件 填充 何预      更新时间:2023-09-26

我在一个工作板网站提交用户申请到第三方网站。用户在申请时必须提供以下信息:姓名、联系方式和简历。由于这些字段在站点上的用户配置文件中也可用,因此我们希望预先填充表单字段,允许用户根据自己的喜好更改信息。

现在,可以毫无问题地填充所有其他字段。但是,由于违反安全规定,无法填充文件输入字段。是否有一个工作围绕可能使用FILE APIBLOB对象?

我打算做的是:

  1. 在服务器
  2. 上从文件URL创建blob对象使用FileReader读取blob作为数组缓冲区。
  3. 将此文件附加到文件输入字段<-这是我无法弄清楚的,需要帮助。

另外,如果有任何替代方法来实现这一点,请让我知道。我使用PHPJavaScript来生成表单,因此我可以在PHP中进行预处理。

  • 将此文件附加到文件输入字段<-这是我无法弄清楚的,需要帮助。
  • 不可能在<input type="file">元素的FileList对象处设置值。

    您可以创建File对象并将其附加到FormData对象上,并使用XMLHttpRequest()提交FormData

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

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

    Background:我为客户端创建了一个自定义WordPress插件,它从各个网站获取工作申请,并内联显示它们。我们还允许提交应用程序,用户可以在其中附上他们的简历,并将其提交到原始职位发布。由于很多用户都是通过手机访问网站的,所以他们无法在手机上看到简历。在这种情况下,我们希望为他们提供一种工具,让他们使用存储在个人资料中的简历。

    可能的解决方案:最简单的方法是通过ajax从用户的配置文件中获取文件内容,并在提交之前将其附加到表单上。然而,无论出于何种原因,这都不起作用。

    应用的解决方案:工作的解决方案是相当老派的。我们没有直接提交应用程序,而是将其提交到一个中间页面,该页面从用户的配置文件中获取文件内容,修改表单数据并通过curl提交。这也节省了用户端的双重数据交换(文件下载和重新上传)。