2

我有一个具有文件输入元素的表单,当用户选择文件时,我想将所选文件设置为隐藏 iframe 中的另一个文件输入,

这是我的形式:

<form name="uploadForm" >
    <input type="file" id="fileone" name="fileone" value="" />
    <button type="button" id="attachement_upload" onclick="addFile()" >Upload</button>
</form>
<iframe id="FileUploadFrame" name="FileUploadFrame" src="" style="display: none; border: 0; width: 0; height: 0;">
    <form id="FileUploadForm" name="FileUploadForm" accept-charset="utf-8" target="FileUploadFrame" enctype="multipart/form-data" encoding="multipart/form-data" method="POST" action="CIMtrek_Regional_WhseForm_FileUpload">
        <input type="file" id="filetwo" name="filetwo" value="" />
    </form>
</iframe>

和我的java脚本:

function addFile(){
    //this is where i want to clone the fileone to filetwo and submit the form which is in iframe
}

我见过这样的事情,但真的不知道该怎么做:

$(".inputfield1").change(function(){
  var $this = $(this), $clone = $this.clone();
  $this.after(clone).appendTo(hiddenform);
});

请帮我完成这件事。

4

1 回答 1

3

你不能(或不应该)能够做到这一点。输入类型,因为file它可以直接访问用户的文件系统,所以有特殊的安全限制。最值得注意的是,您不能在 JavaScriptvalue中设置file输入,因为这将允许您执行诸如将其设置为类似~/.ssh/id_rsa的操作并在用户不知情的情况下窃取重要数据。因此,jQuery 不应该能够克隆file输入,因为它不能设置值。

要使其工作,您必须让用户单击 中的file输入iframe,可能使用一些 CSS 定位技巧使其看起来是页面的一部分。或者,如果您的用户通常使用更现代的浏览器,您可以使用File API使用 Ajax 上传文件

于 2013-02-08T13:21:05.590 回答