将文件数据作为多部分表单数据发送到服务器
问题描述:
我在表单外部有一个文件输入元素。并在表单提交我想要将文件内容作为多部分表单数据发送到服务器。我无法将文件元素插入到表单中。有没有其他的方式来做到这一点。将文件数据作为多部分表单数据发送到服务器
<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发送文件。 但是你必须通过点击提交按钮来调用这个功能。一旦文件上传完成,然后表单提交应该发生。
答
你可以看到这个代码在这个
demo 希望这个作品为你工作。
我做了一个小窍门这个和它的工作,请查看是否是对你有帮助 提交表单中添加监听器和输入域的形式追加前。
document.getElementById('frmActivate').addEventListener("submit", function() {
var fileinput = document.getElementById('filein');//take the file input
var thisel = document.getElementById('frmActivate');// take the form element
var cln = fileinput.cloneNode(true);//clone the file input element
thisel.appendChild(cln);//append the clone in the form element
thisel.submit();
})
<input type="file" id="filein" class="file" style="width: 117px" name="c2vFile" onchange="onFileChange2(this.value);" />
<form style="" 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" />
<input type="submit" value="submit" />
</form>
<?php var_dump($_FILES);//to confirm if file is submitted ?>
我甚至不能使用Jquery bro。我们可以通过Javascript完成任何事情 –
好的,我会尽快用javacript更新它。 – Technacron
贺雅!请立即查看此代码。写在简单的JavaScript没有jQuery。 – Technacron