⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fileuploadcontroller.java

📁 这是基于spring +hibernate的项目
💻 JAVA
字号:
package com.pure.web.spring;

import java.io.File;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.util.FileCopyUtils;
import org.springframework.validation.BindException;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import org.springframework.web.multipart.support.ByteArrayMultipartFileEditor;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;

import com.pure.domain.FileUpload;
import com.pure.domain.Image;
import com.pure.util.ActiveUploadFile;
import com.pure.util.PureUtil;

public class FileUploadController extends SimpleFormController  {
	protected final Log logger = LogFactory.getLog(getClass());

	private String uploadDir;// 上传文件路径

	protected ModelAndView onSubmit(HttpServletRequest request,
			HttpServletResponse response, Object command, BindException errors)
			throws Exception {
		
		HttpSession session = request.getSession();
		String realPath = session.getServletContext().getRealPath("/");
		FileUpload bean = (FileUpload) command;
		byte[] bytes = bean.getFile();

		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
		CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest.getFile("file");

		String sep = System.getProperty("file.separator");
		String uploadDir = realPath+this.getUploadDir();

		File dirPath = new File(uploadDir);
		if (!dirPath.exists()) {
			dirPath.mkdirs();
		}
		//原文件名
		String fileName = file.getOriginalFilename();
		//新文件名
		String nFileName = PureUtil.getUploadFileName()+PureUtil.getUploadFileEx(fileName);
		
		File uploadedFile = new File(uploadDir+sep+ nFileName);
		FileCopyUtils.copy(bytes, uploadedFile);
		
		ActiveUploadFile activeUploadFile = ActiveUploadFile.getInstance();
		Image image = new Image();
		image.setName(fileName);
		image.setNewname(nFileName);
		image.setSize(new Long(uploadedFile.length()));
		activeUploadFile.addUploadFile(image);
		
		session.setAttribute("files",activeUploadFile.getUploadFiles());
		
		Map uploadFileList = new HashMap();
		uploadFileList.put("file",file.getOriginalFilename());
		return new ModelAndView(getSuccessView(),uploadFileList);
	}

	protected void initBinder(HttpServletRequest request,
			ServletRequestDataBinder binder) throws ServletException {
		binder.registerCustomEditor(byte[].class,new ByteArrayMultipartFileEditor());
	}

	public void setUploadDir(String uploadDir) {
		this.uploadDir = uploadDir;
	}

	public String getUploadDir() {
		return this.uploadDir;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -