这里先说一下,我用DWZ做前台显示数据,后台Jfinal查询数据
前台 效果图
前台页面代码部分:
<form method="post" action="<%=basePath%>actives/add" onsubmit="return iframeCallback(this,dialogAjaxDone);" class="pageForm required-validate" enctype="multipart/form-data"> <div class="pageFormContent" layoutH="56"> <p> <label>活动名称:</label> <input type="text" name="name" class="required" size="30"/> </p> <p> <label>活动内容:</label> <input type="text" name="content" size="30" class="textInput"> </p> <p> <label>开始时间:</label> <input type="text" name="startTime" class="date" size="30"/> </p> <p> <label>结束时间:</label> <input type="text" name="endTime" size="30" class="date"> </p> <p> <label>活动海报:</label> <input type="file" name="fileUp" style="width: 150px;" /> *支持jpg,gif,png </p> </div> <div class="formBar"> <ul> <li> <div class="buttonActive"> <div class="buttonContent"> <button type="submit" id="tosave">保存</button> </div> </div> </li> <li> <div class="button"> <div class="buttonContent"> <button type="button" class="close">取消</button> </div> </div> </li> </ul> </div> </form>
jfinal配置的是action跳转到actives路径下的add方法
public void add(){ Actives act = new Actives(); boolean flag = false; HttpServletRequest request = this.getRequest(); DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); try { List<FileItem> items = upload.parseRequest(request); Iterator itr = items.iterator(); while (itr.hasNext()) { FileItem item = (FileItem) itr.next(); //获取前台所有有name属性的字段,然后放到实体中准备增加 if (item.isFormField()) { if(item.getFieldName().equals("id")){ act.set("id", item.getString("UTF-8")); } if(item.getFieldName().equals("name")){ act.set("name", item.getString("UTF-8")); } if(item.getFieldName().equals("content")){ act.set("content", item.getString("UTF-8")); } if(item.getFieldName().equals("startTime")){ act.set("startTime", item.getString("UTF-8")); } if(item.getFieldName().equals("endTime")){ act.set("endTime", item.getString("UTF-8")); } System.out.println("表单参数名:" + item.getFieldName() + ",表单参数值:" + item.getString("UTF-8")); } else { if (item.getName() != null && !item.getName().equals("")) { String name = item.getName(); name = name.substring(name.lastIndexOf(".") + 1).trim(); // 定义允许上传的文件类型 List<String> fileTypes = new ArrayList<String>(); fileTypes.add("jpg"); fileTypes.add("jpeg"); fileTypes.add("gif"); fileTypes.add("png"); if (!fileTypes.contains(name.toLowerCase())){ setAttr("message", "只允许上传jpg,jpeg,gif,png格式的图片"); } else { setAttr("message", "上传文件成功!"); act.set("name", act.getStr("name")); act.set("content", act.getStr("content")); act.set("startTime", act.getStr("startTime")); act.set("endTime", act.getStr("endTime")); flag = act.save(); Actives aa = act.findFirst("select max(id) id from 3d_active"); File tempFile = new File(item.getName()); if(tempFile.exists()){ tempFile.renameTo(new File(InitDataListener.TOMCAT_PATH+"img/"+aa.getInt("id")+"."+name)); } item.write(tempFile); } }else{ setAttr("message", "没有选择上传文件"); } } } }catch(FileUploadException e){ e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); request.setAttribute("upload.message", "上传文件失败!"); } //标志上传成功与失败,返回给前台 if(flag){ Map<String, String> map=new HashMap<String, String>(); map.put("statusCode", "200"); map.put("message", "活动发布成功"); map.put("navTabId", ""); map.put("rel", ""); map.put("callbackType", "closeCurrent"); map.put("forwardUrl", ""); String json=JsonKit.mapToJson(map, 0); renderJson(json); } }
好了,大功告成,这样上传就完成了!!