设置文件上载字段值 - Javascript/jQuery

Neo*_*ile 15 html javascript jquery file-upload setvalue

我有一个具有文件上传字段的表单页面,我试图以编程方式设置该字段的值,虽然我知道由于安全原因它是不可能的,但我想知道我们是否仍然可以?如果有插件或我可以用来执行上传的东西.我有设置该字段所需的文件字段的Base64值,我需要知道的是有没有办法设置它.

在这方面,任何建议或帮助都会很棒.

谢谢.

更新: 添加了一个JsFiddle来演示我正在尝试的内容.

请访问此网站,使用js小提琴中的示例创建一个文本文件,并使用此链接进行转换.

var str = `text`;
Run Code Online (Sandbox Code Playgroud)

http://www.motobit.com/util/base64-decoder-encoder.asp

的jsfiddle

注意:

下面的答案反映了2009年遗留浏览器的状态.现在,您可以在2017年使用JavaScript动态/编程地设置文件输入元素的值.

有关详细信息和演示,请参阅此问题中的答案:
如何以编程方式设置文件输入值(即:拖放文件时)?

sea*_*pip 5

您可以将base64字符串转换为blob,然后在使用ajax请求提交之前将其添加到formData:

$("#form").submit(function(e) {
  e.preventDefault();
  formData = new FormData($(this)[0]);
  var blob = dataURLtoBlob("base64 string");
  formData.append("yourfile", blob);
  $.ajax({
    url: "whatever.php",
    type: "POST",
    data: formData,
    contentType: false,
    cache: false,
    processData: false,
    success: function(data) {
      alert("Form has been submitted with file");
    }
});
Run Code Online (Sandbox Code Playgroud)

dataURLtoBlob是一个将base64字符串转换为二进制文件(blob)源的函数:来自DataURL的Blob?


小智 0

action最简单的方法是对标签上的表单字段执行 AJAX POST 请求<form>。无论如何,这就是普通 HTML 本身所做的事情,但在我们的例子中,您可以通过编程方式指定数据,在本例中是一个多部分文件。

例如,请参阅这个问题。


归档时间:

查看次数:

5456 次

最近记录:

7 年,10 月 前