分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

struts2上传文件

发布时间:2023-09-06 02:18责任编辑:白小东关键词:暂无标签

1.form表单

<form class="form-horizontal" onkeydown="if(event.keyCode==13)return false;" action="/user/updatePro.do" method="post" ?????role="form" id="updateUserForm" enctype="multipart/form-data"> ???<input type="hidden" name="id" value="${user.id}"> ???????<div class="form-group"> ???????<label for="pic" class="col-sm-2 control-label">头像</label> ???????<div class="col-sm-4"> ???????????<input type="file" name="pic2" id="pic" /> ???????</div> ???</div> ???<div class="form-group"> ???????<div class="col-sm-offset-2 col-sm-10"> ???????????<button type="submit" class="btn btn-default" id="updateUserBtn">修改</button> ???????</div> ???</div></form>

2.后台处理

package cn.getword.action;import cn.getword.domain.User;import cn.getword.service.UserService;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;import org.apache.commons.fileupload.servlet.ServletFileUpload;import org.apache.commons.io.FileUtils;import org.apache.struts2.ServletActionContext;import org.apache.struts2.convention.annotation.Action;import org.apache.struts2.convention.annotation.Namespace;import org.apache.struts2.convention.annotation.ParentPackage;import org.apache.struts2.convention.annotation.Result;import org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import javax.servlet.http.HttpServletRequest;import java.io.File;import java.io.IOException;import java.time.LocalDate;import java.util.*;@Controller@ParentPackage("my-default")@Namespace("/user")public class UserAction extends ActionSupport implements ModelDriven<User> { ???@Autowired ???private UserService userService; ???private User user = new User(); ???private String pic2FileName; ?// 获取原始文件名,同理可以获取文件File ???@Action(value = "update", results = {@Result(location = "/WEB-INF/views/updateUser.jsp")}) ???public String updateUser() { ???????HttpServletRequest request = ServletActionContext.getRequest(); ???????User user1 = userService.getUserById(user.getId()); ???????request.setAttribute("user", user1); ???????return SUCCESS; ???} ???@Action(value = "updatePro", results = {@Result(name = "success", type = "redirect", location = "/index.do"), ???????????@Result(name = "input", type = "redirect", location = "/index.do") ???}) ???public String updateUserPro() { ???????HttpServletRequest request = ServletActionContext.getRequest(); ???????String pic = request.getParameter("pic2"); ???????if (ServletFileUpload.isMultipartContent(request)) { ???????????File[] pics = ((MultiPartRequestWrapper) request).getFiles("pic2"); ???????????if (pics.length > 0) { ???????????????File file = pics[0]; ???????????????String path = "/upload/images/user"; ???????????????LocalDate now = LocalDate.now(); ???????????????path += "/" + now.getYear() + now.getMonthValue() + now.getDayOfMonth(); ???????????????File dir = new File(request.getServletContext().getRealPath(path)); ???????????????if (!dir.exists()) { ???????????????????dir.mkdirs(); ???????????????} ???????????????String filename = file.getName(); ???????????????String ext = filename.substring(filename.lastIndexOf(".") + 1); ???????????????//判断是否需要覆盖 ???????????????User u1 = userService.getUserById(user.getId()); ???????????????String filepath = u1.getPic(); //虚拟目录 ???????????????if (user.getPic() == null) { ???????????????????filepath = path + "/" + UUID.randomUUID().toString().replace("-", "") +"."+ ext; ???????????????????user.setPic(filepath); ???????????????} ???????????????File uploadFile = new File(request.getServletContext().getRealPath(filepath)); ?//目标路径 ???????????????try { ???????????????????FileUtils.copyFile(file, uploadFile); ???????????????} catch (IOException e) { ???????????????????e.printStackTrace(); ???????????????} ???????????????rs = userService.updateUser(user); ???????????} ???????????return SUCCESS; ???????} ???????return INPUT; ???} ???//====================== ???@Override ???public User getModel() { ???????return user; ???} ???public void setUserService(UserService userService) { ???????this.userService = userService; ???} ???public String getPic2FileName() { ???????return pic2FileName; ???} ???public void setPic2FileName(String pic2FileName) { ???????this.pic2FileName = pic2FileName; ???}}

end

struts2上传文件

原文地址:https://www.cnblogs.com/zhuxiang1633/p/9797688.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved