Javascript 是否可以同时传输参数和上载图像?
我想知道是否可以调用一个PHP脚本来传递参数,同时使用AJAX通过POST上传图像 想象一下这种形式Javascript 是否可以同时传输参数和上载图像?,javascript,ajax,forms,input,Javascript,Ajax,Forms,Input,我想知道是否可以调用一个PHP脚本来传递参数,同时使用AJAX通过POST上传图像 想象一下这种形式 Insert a title <input id="title" style="width:300px"></input> Attach an image <input id="immagine" type="file" name="immy" accept="image/*" size="40"/> 而对于图像,则必须使用FormData。类似这样的情况
Insert a title <input id="title" style="width:300px"></input>
Attach an image <input id="immagine" type="file" name="immy" accept="image/*" size="40"/>
而对于图像,则必须使用FormData。类似这样的情况(请注意,它实际上不起作用):
var file_data=$(“#immagine”).files[0]//你忘了描述这个问题了。“不工作”不是一个很好的描述。只是好奇:为什么不使用jQuery进行ajax调用?jQuery对象不会直接访问输入的文件列表。要访问该文件,您需要确保#immagine
是输入(而不是表单本身),并执行以下操作:$(“#immagine”).eq(0)。文件[0]
@rciovati:使用jquery不好吗?无论如何,我必须在同一页中的其他操作中使用它,因此我想在所有操作中都使用它。@numbers1311407:我将尝试您的脚本。。所以var file_data=.eq(0).files[0]。。。脚本的其余部分可以吗?
var ajaxReq = new XMLHttpRequest();
var params = "titolo="+$('#title').val()
var url = "registraDati.php";
ajaxReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajaxReq.setRequestHeader("Content-length", params.length);
ajaxReq.setRequestHeader("Connection", "close");
ajaxReq.send(params)
var file_data = $("#immagine").files[0]; //<----PROBLEM HERE!!
var form_data = new FormData();
form_data.append("afile", file_data)
form_data.append("user_id", 123)
var xhr = new XMLHttpRequest();
xhr.open('POST', 'uploadImmagine.php', true);
xhr.send(form_data);