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