javascript如何用Java解析请求?
我使用JavaServlet从客户端获取参数。 这是我的帖子:
为了将请求发送到服务器,我使用ExtJs:
var x = new Ext.Window({
title:'Загрузка файла',
items:[
formp = new Ext.FormPanel({
fileUpload: true,
width: 350,
autoHeight: true,
bodyStyle: 'padding: 10px 10px 10px 10px;',
labelWidth: 70,
defaults: {
anchor: '95%',
allowBlank: false,
msgTarget: 'side'
},
items:[{
xtype:"combo",
fieldLabel:'Тип файла ',
name:"cb_file",
id:"cb_file",
mode:"local",
typeAhead: false,
loadingText: 'Загрузка...',
store:new Ext.data.SimpleStore({
fields: ['file_name', 'file_type'],
data : [['*.MIF/MID', 'mif'],['*.GPX', 'gpx']]
}),
forceSelection:true,
emptyText:'выбирите тип...',
triggerAction:'all',
valueField:'file_type',
displayField:'file_name',
anchor:'60%'
},{
xtype: 'fileuploadfield',
id: 'filedata',
emptyText: 'Выберите файл для загрузки...',
fieldLabel: 'Имя файла',
buttonText: 'Обзор'
}],
buttons: [{
text: 'Загрузить',
handler: function(){
mapinfo="mapinfo";
formp.getForm().submit({
url: url_servlet+'uploadfile',
//params: {file_type: mapinfo},
success: function(formp, o) {
alert(o.result.file);
alert(o.result.success);
kad_tab.getStore().reload()
zoom_store.load();
}
})
}
}]
})
]
})
x.show();
如果我理解正确:在向服务器发送两个参数之后cb_file
和filedata
。我试着让他们通过:
String st = request.getParameter("cb_file");
但是得到空值
当我试图获取文件时:
list = upload.parseRequest(request);
我也有null
但如果我只发送文件(为此,我使用combobox删除行),它就可以正常工作
如何解析这个请求
# 1 楼答案
这是因为请求是多部分的。您可以读取请求流并自行解析,也可以使用Apache Commons(请使用这个!)
在这里,你有一个剪子,它演示了如何使用Apache Commons fileupload做你想做的事情:
祝你好运