上传文件,给输入框添加file属性,添上onchange()事件,使用ajax提交,参数怎么写?

如图,我写了个上传框图片说明

提交表单的时候,我这个data里面的参数怎么写,写什么啊
图片说明

给个例子给你:
data:{
'prid':$("#id").val(),//主单ID
'processname':$("#processname").val(),//流程名称
'processnodename':$("#processnodename").val(),//节点名称
'purAccount':purchaseExpenseAccountId.substring(0,purchaseExpenseAccountId.length-1),//科目
'costCenter':costCenterId.substring(0,costCenterId.length-1),//成本中心
'budgetaryEar':budgetaryEar.substring(0,budgetaryEar.length-2), //预算金额
'parities':$("#parities").val(),//汇率
'cnyGrandTotalco':$("#grandTotalCnyT").val(), //总计金额
'internalOrder':internalOrder.substring(0,internalOrder.length-1),//内部订单号
'itemPrices':itemPrices.substring(0,itemPrices.length-1), //金额小计
'addonTotalCny':addonTotalCny, //追加金额
'purexptypeid':$("#purexptypeid").val(),
'purchaseType':$("#purchaseType").val(),//采购类型
'expenseType':$("#expenseType").val() //支出类别
},

                 <form id="UploadFile" action="xxx/xxx" method="post" class="file-upload" enctype="multipart/form-data">
                    <div class="ordinary mangerUp clearfix">
                        <input type="submit" class="upload" value="文件上传">
                        <input type="file" class="agent-file" name="file"/>
                    </div>
                </form>

                $(function() {
                    var options = {
                    type : 'POST',
                    url : 'xxx/xxxx',
                    success : function showResponse(responseText, statusText, xhr, $form) {
                                                        if (responseText.status == "0") {
                                                                            alert(responseText.msg);// * 请求成功后的操作 
                                                    } else {
                                                                        alert(responseText.msg);
                                                    }
                        },

                    dataType : 'json',
                error : function(xhr, status, err) {
                                alert("操作失败");
                    }
};

$("#UploadF").submit(function() {
    $(this).ajaxSubmit(options);
    return false; //防止表单自动提交  
});
});

ajax传文件要用HTML5的FormData,IE9-不支持。你用jquery.ajax还得配置processData为false不转为键值对,而且onchange要放到file对象上,不是a,a没有onchange事件

 <input type="file" name="file" onchange="inputfile(this)" />
<script>
    function inputfile(el) {
        var data = new FormData();
        data.append('file', el.files[0]);////
        $.ajax({
            ....
            ...
            data:data,/////////
            processData:false,///////
            .....
        })
    }
</script>

写后台需要接收你的参数啊,他们要什么字段,你就填什么字段给他们

var form = new FormData(document.getElementById("wcmDocumentForm"));
if($(obj).closest('form').valid()){
$.ajax({
type: 'post',
url: webRoot+$(obj).closest('form').attr('action'),
data: form,
processData:false,
contentType:false,
dataType: 'json',
success: function(data){
alert(messages[data.result]);
search();
$(".panel-search").show();
}
});
}
上面这几个我看了下应该有的有问题,form表单提交附件不能直接提交,ajax参数也有变化,processData:false,
contentType:false,这两个是必须有的把整个form重新new一个,后台直接获取就可以

$.ajaxFileUpload({
url : _url,

secureuri : false, //是否启用安全提交,默认为false。
fileElementId : _id, //input的Id
dataType : 'json', //服务器返回的数据类型。可以为xml,script,json,html。如果不填写,jQuery会自动判断。
success : function(result) {
//do sth
},
error : function(data, status, e) {
//do sth
}
});

你可以在URL上加参数
url: '${webRoot}/user/xxxxxx?参数名=' + 参数