使用文件名和其他参数传递文件以使用jquery上传文件

时间:2014-07-14 10:43:01

标签: 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);
    }
});

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

2 个答案:

答案 0 :(得分:2)

试试这个,

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);
                    }
                });
            }

答案 1 :(得分:0)

您可以使用iframe将图像上传到jquery ...

实施例

<iframe  name='Status_update' src='updating.php'' scrolling='no'
      sandbox='allow-forms' frameborder='0' style='height:150px;width:700px;'>
</iframe>
<script>
$(document).ready(function(){
    $("#input_for_image_upload").change(function() //can call on any function
    {
        $("#img_upload").submit();
    });
});
</script>