springmvc文件上传使用uploadify插件

<!--引入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;
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值