2013-02-08 46 views
2

我有一个窗体有一个文件输入元素,当用户选择文件我想设置选定的文件到另一个文件输入是隐藏的IFRAME,如何克隆文件输入到另一个文件输入是在隐藏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); 
}); 

请帮我完成这件事。

回答

3

你不能(或不应该)能够做到这一点。 file输入类型,由于它可以直接访问用户的文件系统,因此具有特殊的安全限制。最值得注意的是,您无法在JavaScript中设置file输入的value,因为这样您可以将其设置为诸如~/.ssh/id_rsa之类的内容,并在用户不知情的情况下窃取重要数据。因此,jQuery不应该能够克隆file输入,因为它无法设置该值。

为了让它起作用,您必须让用户点击iframe中的file输入,也许使用一些CSS定位技巧使它看起来像是页面的一部分。或者,如果您的用户通常拥有更多现代浏览器,则可以使用File APIupload the file with Ajax