基本思路在于,配置路径,然后用java I/O的api将图片上传到该目录下。
String photoPath =
ServletActionContext.getServletContext().getRealPath("/user/photo/" + username);
这句是获取服务器下的目录+username
而username通过session获取。
这是一个图片上传action的方法:
public String execute() throws Exception { //获得username Map session = ServletActionContext.getContext().getSession(); String username = (String) session.get("username"); //创建一个输入流 InputStream is = new FileInputStream(myFile); //设置文件保存目录 String photoPath = ServletActionContext.getServletContext().getRealPath("/user/photo/" + username); File filePhotoPath = new File(photoPath); if(!filePhotoPath.isDirectory()) { filePhotoPath.mkdir(); } //解决中文文件名问题 String extension = FilenameUtils.getExtension(this.getMyFileFileName()); String filename = UUID.randomUUID().toString() + "."+ extension; //设置目标文件 File tofile = new File(photoPath,filename); //使用输出流来包装目标文件 OutputStream os = new FileOutputStream(tofile); byte[] buffer = new byte[1024]; int length = 0; while((length = is.read(buffer)) > 0) { os.write(buffer, 0, length); } //关闭输入流 is.close(); //关闭输出流 os.close(); return this.SUCCESS; }
时间: 2024-12-15 06:50:09