Javascript 将文件数据作为多部分表单数据发送到服务器

Javascript 将文件数据作为多部分表单数据发送到服务器,javascript,Javascript,我在表单外有一个文件输入元素。在表单提交时,我想将文件内容作为多部分表单数据发送到服务器。我无法将file元素插入表单。有没有其他方法可以做到这一点 <input type="file" class="file" style="width:117px" name="c2vFile" onchange="onFileChange2(this.value);"/> <form style="display:none" id="frmActivate" enctype=

我在表单外有一个文件输入元素。在表单提交时,我想将文件内容作为多部分表单数据发送到服务器。我无法将file元素插入表单。有没有其他方法可以做到这一点

<input type="file" class="file"  style="width:117px"  name="c2vFile" onchange="onFileChange2(this.value);"/>

    <form style="display:none" id="frmActivate" enctype="multipart/form-data">

        <input type="hidden" id="act_groupActivationJson" name="groupActivationJson" />
        <input type="hidden" id="act_remarks" name="comments" />
        <input type="hidden" id="activatee" name="activatee" />

    </form>


文件输入需要在表单标记内。你说过你不能,但为什么不能?您需要删除“display:none”,该选项目前没有任何用途,因为输入都是隐藏的。

您可以使用AJAX提交在表单标记之外发送文件。您可以按照下面的链接使用ajax发送文件。 但您必须在单击submit按钮时调用此函数。文件上传完成后,应进行表单提交


我用这个做了一个小把戏,它成功了,请查看它是否对您有帮助 在提交表单之前,添加侦听器并将输入字段附加到表单中

document.getElementById('frmActivate').addEventListener(“提交”,函数(){
var fileinput=document.getElementById('filein');//获取文件输入
var thisel=document.getElementById('frmActivate');//采用表单元素
var cln=fileinput.cloneNode(true);//克隆文件输入元素
thisel.appendChild(cln);//在form元素中追加克隆
thisel.submit();
})


我甚至不能使用Jquery bro。我们可以用JavascriptHeya做任何事!请现在查看此代码。用简单的javascript编写,没有jQuery。