javascript - 使用jquery传递带有文件名和其他参数的文件来上传文件

标签 javascript jquery ajax file http-post

我正在使用 Jquery 上传文件。问题我打算通过所选文件传递更多参数。但是,我的经验是,如果传递的数据不作为字符串处理,则 processData 属性值应设置为 false。当我这样做时,我无法通过 jquery ajax 传递的数据传递任何其他值。

下面是我正在使用的代码:

$.ajax({
    url: 'php/upload.php',
    data: data,         // here I want to pass more data like { filedata:data, op1 : val1, op2:val2 }
    cache: false,
    contentType: false,
    processData: false,
    type: 'POST',
    success: function(data){
        alert(data);
    }
});

如果您能够找到针对这种情况的解决方法,请分享您的想法。或者如果您知道传递数据的任何其他方式。请分享。

最佳答案

试试这个,

var data= false;
if (window.FormData) {
     data= new FormData();
}

if (formdata) {
    data.append("image", file);
    data.append("opt1",'value1');
    data.append("opt2",'value2');
 }

 if (data) {
          jQuery.ajax({
                    url: "php/upload.php",
                    type: "POST",
                    data: data,//Now you attached datas
                    processData: false,
                    contentType: false,
                    success: function (data) {
                       alert("Response  Data : "+data);
                    }
                });
            }

关于javascript - 使用jquery传递带有文件名和其他参数的文件来上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24734736/

相关文章:

javascript - 如何使选项卡隐藏直至悬停

javascript - 提交时更改表单值

javascript - 用 jQuery 替换图像

javascript - 如何通过名称获取元素并设置其值

html - 使用 Json 获取未知路径

javascript - 使用 javascript/Jquery 进行 Ajax

javascript - 使用 javascript 或 jquery 更改链接的域部分

javascript - Firefox 不支持 JavaScript(表单验证),但 IE 完全支持

javascript - 选择多次显示的菜单

javascript - 传递动态参数如何与 React-Router 中的传递 props 一起工作