Tag: multipartform data

使用Ajax将FormData对象发送到服务器(包含文件)

我有一个包含文本和文件字段的表单。 我试图将整个事情提交给托管在服务器上的php脚本,并返回validation消息。 我的表单看起来像这样: Name: Age: Instagram Account: Photograph Upload: Why should you represent Drip Cold Pressed Juice? Apply! 我的jQuery看起来像: jQuery(“#ambassador”).submit(function(event) { event.preventDefault var server = “http://getdripped.com/dev/ambassador.php”; var form = document.getElementById(‘#ambassador’); var formData = new FormData(form); alert(formData); jQuery.ajax({ url: server, type: ‘POST’, data: formData, async: false, success: function (data) { alert(data) }, cache: false, contentType: false, […]

使用jQuery通过ajax从multipart / form-data发送数据

我现在一整天都在努力,而我却无法让它发挥作用。 我基本上使用jQuery库得到了一个简单的ajax请求,我想发送我通过mutlipart / form-data文件输入发布的数据,但是,我已经尝试了我能想到的一切。 我的文件上传脚本正在等待文件名作为参数(也没有尝试),但它只是不想从文件输入框本身获取数据。 如果没有其他插件(多次上传等),有人可以请教我如何做到这一点。 这是我的jQuery代码: function uploadTimesheets(){ $(‘#waiting’).show(); var error = ”; var msg = ”; //Performs the Ajax Request var data = $.ajax({ type : ‘POST’, url : ‘/ajax/timesheet/uploadNewTimesheets.php’, dataType : ‘json’, contentType : ‘multipart/form-data’, data : data, error : error, msg : msg, success : function(data){ if(!data){ $(‘#notification’).removeClass(this).addClass(‘notification-success’).html(data).show().delay(1200).fadeOut(800); getActiveTimesheets(getSelectedPage()); }else{ $(‘#notification’).removeClass().addClass(‘notification-error’).html(data.msg […]

formData.has()不是函数

我正在尝试做一个简单的ajax文件上传,但我得到一个“未捕获的TypeError:formData.has不是一个函数” 如果我也注释掉formData.has()检查函数并用formData.append(’myResume’)替换它,我得到一个类似的错误,说formData.get()不是我的ajax调用中的函数。 有什么建议? 谢谢 :) 这是html: Upload 和javascript: $(function(){ var formData = new FormData(); $(‘#file-form’).submit(function(event){ var fileInput = document.getElementById(‘file-select’).files; var file = fileInput.item(0); event.preventDefault(); //Error here formData.has() is not a function if(formData.has(‘myResume’)){ formData.set(‘myResume’, file); } else{ formData.append(‘myResume’, file); } $.post(‘/upload’, {file: formData.get(‘myResume’)}); }) })

从javascript发送时如何保存图像服务器端

我正在通过阅读一堆教程来制作拖放上传脚本,但它们只涵盖了javascript部分,我在php部分遇到了问题。 我正在上传一张图片: $(‘#drop-zone’).bind(‘drop’, drop); function drop(e) { e.stopPropagation(); e.preventDefault(); e.dataTransfer = e.originalEvent.dataTransfer; traverseFiles(e.dataTransfer.files); } traverseFiles为每个文件创建一个foreach循环并调用upload function,我这样做: xhr = new XMLHttpRequest(); //some event listners for processing, on load xhr.open(“post”, “core/plugins/upload/upload.class.php”, true); xhr.setRequestHeader(“Content-Type”, “multipart/form-data”); xhr.setRequestHeader(“X-File-Name”, file.name); xhr.setRequestHeader(“X-File-Size”, file.size); xhr.setRequestHeader(“X-File-Type”, file.type); xhr.send(file); 然后在PHP我发现使用这将得到我的图像的原始数据 $file = file_get_contents(‘php://input’); 编辑:找到解决方案 $fh = fopen($savedir, ‘w’) or die(“can’t open file”); fwrite($fh, $file); fclose($fh);

使用jQuery ajax使用formData()上传文件和表单数据

我希望使用带有此代码的forData()上传带有jquery ajax和php的文件: var data = new FormData(); data.append(‘image’,document.getElementById(‘uFile’).files[0]); data.append(‘tag’,’saveDocument’); data.append(‘data’,$(‘#saveDocument’).serializeArray()); $.ajax({ url: url, type: ‘post’, data: data, cache: false, contentType:false, dataType: ‘json’, processData: false, success: function (data) { setAlert(“Documento guardado correctamente!”,success); }, error: function() { setAlert(“Ha ocurrido un error al guardar!”,error); } }); return false; 此行包含表单中所有字段的数据: data.append(‘data’,$(‘#saveDocument’).serializeArray()); 但在PHP中,我无法访问该数据,我希望访问表格数据以插入表格,你知道这是什么问题吗? Html表格 Todos los campos son requeridos! Seleccione […]

如何在使用带有多个文件的jquery ajax FormData()时设置multipart / form-data请求的边界

我有一个HTML表单,需要在一个请求中将3个部分上传到现有的REST API。 我似乎无法找到有关如何在FormData提交上设置边界的文档。 我试图按照这里给出的示例: 如何在jQuery中使用Ajax请求发送FormData对象? 但是,当我提交数据时,它会被以下堆栈跟踪拒绝: Caused by: org.apache.commons.fileupload.FileUploadException: the request was rejected because no multipart boundary was found. 我该如何设置边界? 这是HTML / Javascript: function handleSubmit() { var jsonString = “{” + “\”userId\”:\”” + document.formSubmit.userId.value + “\”” + “,\”locale\”:\”” + document.formSubmit.locale.value + “\”” + “}”; var data = new FormData(); data.append(‘Json’,jsonString); data.append(‘frontImage’, document.formSubmit.frontImage.files[0]); data.append(‘backImage’, document.formSubmit.backImage.files[0]); document.getElementById(“sent”).innerHTML […]

JS:如何使用FormData发送多个文件(jQuery Ajax)

在我的表单中有多个文件上传,使用FormData只上传一个文件,虽然我选择了多个要上传的文件,以下是代码 HTML JS var ajaxData = new FormData(); ajaxData.append( ‘action’,’uploadImages’); jQuery.each($(“input[name^=’photo’]”)[0].files, function(i, file) { ajaxData.append(‘photo[‘+i+’]’, file); }); $.ajax({ url: URL, data: ajaxData, cache: false, contentType: false, processData: false, type: ‘POST’, dataType:’json’, success: function(data) { if (data.status == ‘success’) { location.reload(); } } }); 我在服务器上使用PHP ,使用HTML attribute name i,e photo我只能保存文件,动态文件名对我不起作用。

我可以在javascript中将数组附加到’formdata’吗?

我正在使用FormData上传文件。 我还想发送一系列其他数据。 当我发送图像时,它工作正常。 当我将一些文本附加到formdata时,它工作正常。 当我尝试在下面附加’tags’数组时,其他一切正常但没有发送数组。 FormData和附加数组的任何已知问题? 实例化formData: formdata = new FormData(); 我创建的数组。 Console.log显示一切正常。 // Get the tags tags = new Array(); $(‘.tag-form’).each(function(i){ article = $(this).find(‘input[name=”article”]’).val(); gender = $(this).find(‘input[name=”gender”]’).val(); brand = $(this).find(‘input[name=”brand”]’).val(); this_tag = new Array(); this_tag.article = article; this_tag.gender = gender; this_tag.brand = brand; tags.push(this_tag); console.log(‘This is tags array: ‘); console.log(tags); }); formdata.append(‘tags’, tags); console.log(‘This […]

使用在IE9中工作的ajax发送文件/文件上载

我需要使用必须在IE9中支持的ajax上传文件。 我正在使用这里提到的FormData。 我的代码如下所示: var files = new FormData(); JQuery.each($(‘#file’)[0].files, function (i, file) { files.append(‘file’, file); }); $.ajax({ type: “POST”, url: ‘/url’, cache: false, contentType: false, processData: false, data: files, … }); 这在Safari和Firefox中工作正常,但在IE9中失败,因为IE9不支持FormData。 我尝试通过设置发送作为文件: data: $(‘#file’)[0].files[0] contentType: ‘multipart/form-data’ 这会失败,因为数据是以url编码的forms发送的,并且无法在java端解析。 任何有关如何解决这个问题的帮助或指针将不胜感激。 我需要适用于所有浏览器的东西。 编辑:我不需要任何上传进度条,因为文件通常很小。 我不需要上传多个文件。 我只需要上传一个文件。

带有额外参数的Webapi ajax formdata上传

我正在使用jQuery ajax上传文件,但想在webapi方法上添加一些参数,这里是: var data = new FormData(); data.append(“file”, $(“#file”)[0].files[0]); data.append(“myParameter”, “test”); // with this param i get 404 $.ajax({ url: ‘/api/my/upload/’, data: data, cache: false, contentType: false, processData: false, type: ‘POST’, success: function (data) { console.log(data); } }); Webapi控制器: public class MyController : ApiController { public string Upload(string myParameter) { return System.Web.HttpContext.Current.Request.Files.Count.ToString() + ” / […]