有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

javascript如何用Java解析请求?

我使用JavaServlet从客户端获取参数。 这是我的帖子:

enter image description here

为了将请求发送到服务器,我使用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_filefiledata。我试着让他们通过:

String st = request.getParameter("cb_file");

但是得到空值

当我试图获取文件时:

list = upload.parseRequest(request);

我也有null
但如果我只发送文件(为此,我使用combobox删除行),它就可以正常工作
如何解析这个请求


共 (1) 个答案

  1. # 1 楼答案

    这是因为请求是多部分的。您可以读取请求流并自行解析,也可以使用Apache Commons(请使用这个!)

    在这里,你有一个剪子,它演示了如何使用Apache Commons fileupload做你想做的事情:

    // Process the uploaded items
    List items = upload.parseRequest(request);
    Iterator iter = items.iterator();
    while (iter.hasNext()) {
        FileItem item = (FileItem) iter.next();
    
        if (item.isFormField()) {
            processFormField(item);
        } else {
            processUploadedFile(item);
        }
    }
    

    祝你好运