2012-08-28 3 views
1

자바 서블릿을 사용하여 클라이언트로부터 매개 변수를받습니다.Java로 요청을 구문 분석하는 방법은 무엇입니까?

enter image description here

서버로 요청을 보내는 동안 나는 사용의 ExtJS : 이 내 게시물입니다 서버 cb_filefiledata 2 개 매개 변수를 보낸 후 :

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

나는이 제대로 이해하고

. 나는 그들을 얻으려고 애 쓰고 :

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

그러나 null을 얻는다. 내가 파일받을 때

는 :

list = upload.parseRequest(request); 

을 나뿐만 아니라 null를 얻을.
하지만 파일 만 보내면 (이 경우 콤보 상자가있는 행은 삭제됩니다) 제대로 작동합니다.
이 요청을 구문 분석하는 방법은 무엇입니까?

답변

1

요청이 여러 부분으로 이루어 졌기 때문입니다. 요청 스트림을 읽고이를 해석하거나 Apache Commons를 사용할 수 있습니다 (이 코드를 사용하십시오!).

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

행운을 빕니다 : 여기

당신은 당신이 Apache Commons fileupload 수행 할 작업을 수행하는 방법 ilustrate 스니 플릿있다!

관련 문제