乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      如何使用multipart / form-data發(fā)布ajax調(diào)用?

       印度阿三17 2019-08-25

      我需要通過AJAX調(diào)用將文件從extjs頁面上傳到服務(wù)器.我可以用簡單的HTML頁面來實現(xiàn)它,但是使用extjs(v4.0.7)我在解析請求時沒有在我的servlet中獲取文件. Servlet識別多部分頁面,但呼叫沒有任何附件.誰能告訴我我的代碼中出錯了什么?

      EXTJS代碼:

      var fileName = Ext.getCmp("fileName").getValue();
      
      Ext.Ajax.request({
          url : 'UploadServlet',
          method: 'POST',  
          headers: {'Content-Type': 'multipart/form-data'},
          params :{
             'fileName': fileName.trim()
          },
      
          success: function ( result, request ) {
              resultData = result.responseText;
          },
          failure: function ( result, request ) {
              resultData = result.responseText;
          }   
      });
      

      Servlet代碼:

      protected void doPost(HttpServletRequest request,HttpServletResponse response)
              throws ServletException, IOException {  
      
          .......
      
           // Check that we have a file upload request
            isMultipart = ServletFileUpload.isMultipartContent(request);
            response.setContentType("text/html");
            java.io.PrintWriter out = response.getWriter( );
            if( !isMultipart ){
                // display no file attached error
               return;
            }
      
            // Create a factory for disk-based file items
            DiskFileItemFactory factory = new DiskFileItemFactory();
            // maximum size that will be stored in memory
            factory.setSizeThreshold(maxMemSize);
            // Location to save data that is larger than maxMemSize.
            factory.setRepository(new File(tempDir));
      
            // Create a new file upload handler
            ServletFileUpload upload = new ServletFileUpload(factory);
            // maximum file size to be uploaded.
            upload.setSizeMax( maxFileSize );
      
      
            try{ 
                // Parse the request to get file items.
      
            ////// fileItems is empty, 
                    ////nothing is comming from extjs page/////////
                List<FileItem> fileItems = upload.parseRequest(request);
      
                // Process the uploaded file items
                Iterator<FileItem> i = fileItems.iterator();
      
                while ( i.hasNext () ) {                
                   FileItem fi = (FileItem)i.next();
      
                   if ( !fi.isFormField () ) {
                      // Get the uploaded file parameters
                      String fieldName = fi.getFieldName();
                      String fileName = fi.getName();
                      String contentType = fi.getContentType();
                      boolean isInMemory = fi.isInMemory();
                      long sizeInBytes = fi.getSize();
      
                      // check if file exists
                      File propFile = new File(tempDir, fileName.substring( fileName.lastIndexOf("\\")));
                      if (!propFile.exists()) {  
                          // Write the file
                          if( fileName.lastIndexOf("\\") >= 0 ){
                             file = new File(tempDir   
                             fileName.substring( fileName.lastIndexOf("\\"))) ;
                          }else{
                             file = new File(  tempDir   
                             fileName.substring(fileName.lastIndexOf("\\") 1)) ;
                          }   
                          //InputStream uploadedStream = fi.getInputStream();
                          fi.write( file ) ;
                          out.println("Uploaded Filename: "   fileName   "  is in "   filePath   "<br>");
                      } 
      
                      ..... 
                   }
                }
      

      解決方法:

      您無法使用AJAX上傳文件.

      Ext的Ajax可以模仿它.請參閱doc of the request方法.您必須使用表單和isUpload選項.

      但是,由于您無論如何都必須使用表單,因此您應該查看Ext.form.field.Field(并且,正如文檔中建議的那樣,到Ext.form.Basic.hasUpload;這將使您更好地理解文件上載有問題).

      編輯:事實上,HTML5 and XMLHttpRequest Level 2增加了對文件上傳的支持.但是,不會改變你在Ext中處理它的方式.

      來源:https://www./content-4-409801.html

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多