extjs 文件上传
功能要求:
在mastplan页面添加按钮,实现上传excel文件的功能,并在保存之前读取文件内容将其保存到数据库里面。
具体实现:
^_^ 先闪闪图片吧。
Jsp页面代码:
在tbar工具栏中添加一按钮: 单击此按钮,弹出一个上传文件的窗口
var win_upload = new Ext.Window({title : 'UploadFile',width :450,height : 180,modal : true,x : 100,y : 50,layout : 'form',autoScroll : true,constrain : true,bodyStyle : 'padding:10px 10px 10px 10px;',items:form,buttons : [{text : '上', handler : function() { if (form.form.isValid()) { if(Ext.getCmp('userfile').getValue() == ''){ Ext.Msg.alert('馨提示','要上的文件'); return; } Ext.MessageBox.show({ title : '稍後....', msg : '文件正在上中....', progressText : '', width : 300, progress : true, closable : false, animEl : 'loding' }); form.getForm().submit({url : 'upload',method : 'POST',success : function(form, action) {Ext.Msg.alert('成功','恭喜!文件上成功!'+action.result.success);win_upload.hide(); }, failure : function(form, action) { Ext.Msg.alert('',"文件上失,重新操作!"); } }) } }}, {text : 'Close',handler : function() {win_upload.hide();}}],closable: false,draggable: false,resizable: false});Java代码:在保存文件之前获取流信息,并将其读出。获取excel内容package javaservlets.production.uploadexcel;import java.io.IOException;import java.io.InputStream;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import jxl.Cell;import jxl.Sheet;import jxl.Workbook;import jxl.read.biff.BiffException;import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.FileUploadException;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;import org.json.JSONException;import org.json.JSONObject;public class Upload extends HttpServlet {private static final long serialVersionUID = 6777945010008132796L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {super.doGet(req, resp);System.out.println("doGet");resp.sendRedirect("/upload/index.jsp");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) {System.out.println("--------------------------------- upload ---------------------------------------------------");InputStream is = null;Workbook workbook = null;try {List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(req);for (FileItem item : items) {if (item.isFormField()) {System.out.println(item.getFieldName());System.out.println(item.getString());} else {System.out.println(item.getFieldName());is = item.getInputStream();workbook = Workbook.getWorkbook(is);}} Sheet[] sheetNum = workbook.getSheets();System.out.println("----------------------------------打印sheet的:"+sheetNum.length+"----------------------------"); Sheet sheet = workbook.getSheet(0); Cell cell = null; int columnCount = sheet.getColumns(); int rowCount = sheet.getRows(); for (int i = 0; i < rowCount; i++) { for (int j = 0; j < columnCount; j++) { cell = sheet.getCell(j, i); System.out.print(cell.getContents()); } System.out.println(" \n"); } resp.setContentType("text/html"); JSONObject jObject = new JSONObject(); try {jObject.put("success", "true");} catch (JSONException e) {e.printStackTrace();try {jObject.put("success", "false");} catch (JSONException e1) {e1.printStackTrace();}} resp.getWriter().print(jObject.toString()); // resp.sendRedirect("/upload/index.jsp"); workbook.close();} catch (FileUploadException e) {e.printStackTrace();} catch (BiffException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} }}