DWZ+Jfinal结合做的图片上传

时间:2021-08-05 18:22:09

   这里先说一下,我用DWZ做前台显示数据,后台Jfinal查询数据

前台   效果图 

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

好了,大功告成,这样上传就完成了!! DWZ+Jfinal结合做的图片上传