您的位置:首页 > 编程语言 > Java开发

springmvc文件上传使用uploadify插件

2016-02-02 09:40 295 查看
<!--引入jquery和uploadify的js文件 -->
<script type="text/javascript"
	src="<%=path%>/resources/jslib/jquery-1.9.1.min.js"></script>
<script type="text/javascript"
	src="<%=path%>/resources/jslib/uploadify/jquery.uploadify.min.js"></script>


<script type="text/javascript">
		$(function() {
		    $("#file_upload").uploadify({
		        'swf'              : '<%=path%>/resources/jslib/uploadify/uploadify.swf',
		        'uploader'         : '<%=path%>/xqlb/upload/filetype',
		        'auto': true,
	            'multi': true,
		        'onUploadComplete' : function(file) {
		            alert('The file ' + file.name + ' finished processing.');
		        }
		    });
		});
</script>


<input type="file" name="file_upload" id="file_upload" />
//controller部分
@RequestMapping(value = "filetype")
	@ResponseBody
	public FileInfo upload(HttpServletRequest request,
			HttpServletResponse response, ModelMap model) throws Exception {
		FileInfo fileInfo = fileUploadService.upload(-1,request);
		System.out.println(fileInfo);
		fileUploadService.save(fileInfo);
		return fileInfo;
	}

//service部分

@Service("fileUploadService")
public class FileUploadService {
	private FileUploadDao fileUploadDao;
	private FileInfoReportDao fileInfoReportDao;
	public FileUploadDao getFileUploadDao() {
		return fileUploadDao;
	}
	@Inject
	public void setFileUploadDao(FileUploadDao fileUploadDao) {
		this.fileUploadDao = fileUploadDao;
	}
	
	public FileInfoReportDao getFileInfoReportDao() {
		return fileInfoReportDao;
	}
	@Inject
	public void setFileInfoReportDao(FileInfoReportDao fileInfoReportDao) {
		this.fileInfoReportDao = fileInfoReportDao;
	}
	/**
	 * 文件上传
	 * @param file
	 * @param request
	 */
	public FileInfo upload(int type, HttpServletRequest request)
			throws UnsupportedEncodingException {
		String fileName = "";
		String rfileName = "";
		long fileSize = 0;
		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
		Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
		String realPath = SystemContext.getRealPath()+"/resources/upload/";
		String path =request.getContextPath()+"/resources/upload/";
		File targetFile = new File(realPath);
		
		if (!targetFile.exists()) {
			targetFile.mkdirs();
		}
		for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
			MultipartFile mf = entity.getValue();
			String str = mf.getOriginalFilename();
			rfileName = new String(str.getBytes("iso8859-1"),"UTF-8"); //转换编码格式   所有上传的文件的编码格式都是iso8859-1
			fileName = new Date().getTime()
					+ rfileName.substring(rfileName.lastIndexOf("."),
							rfileName.length());
			File uploadFile = new File(realPath, fileName);
			fileSize =  mf.getSize();
			try {
				FileCopyUtils.copy(mf.getBytes(), uploadFile);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		FileInfo fileInfo =initUploadInfo(fileName, rfileName, fileSize, path);
		return fileInfo;
	}
	/**
	 * 初始化文件信息对象的值
	 * @param fileName
	 * @param rfileName
	 * @param fileSize
	 * @param path
	 * @return
	 */
	public FileInfo initUploadInfo(String fileName, String rfileName,
			long fileSize, String path) {
		FileInfo fileInfo = new FileInfo();
		fileInfo.setReportName(fileName);
		fileInfo.setrReportName(rfileName);
		fileInfo.setFileSize(fileSize);
		fileInfo.setUrl(path + fileName);
		return fileInfo;
	}
	/**
	 * 保存文件信息
	 * @param fileInfo
	 */
	public void save(FileInfo fileInfo){
		fileUploadDao.add(fileInfo);
	}
	/**
	 * 通过文件名查找文件信息
	 * @param fileName
	 * @return
	 */
	public FileInfo findByFileName(String  fileName){
		FileInfo fileInfo=fileUploadDao.querySqlObject("select * from fileinfo where reportName='"+fileName+"'",null,null, FileInfo.class);
		return fileInfo;
	}
	/**
	 * 通过id查找文件信息
	 * @param id
	 * @return
	 */
	public FileInfo findById(int  id){
		FileInfo fileInfo=fileUploadDao.load(id);
		return fileInfo;
	}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: