免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

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

我需要通過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選項.

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

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

來源:https://www.icode9.com/content-4-409801.html
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
通過 http 協(xié)議上傳文件
Web基礎(chǔ)了解版12-上傳下載
解決當(dāng)FORM的ENCTYPE="multipart/form-data" 時reques...
PHP文件上傳源碼分析
jQuery Ajax uploader plugin (with progress ba...
jatarta fileupload 實例
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服