boolean flag = true;
int length = getMyfileFileName().split("\\.").length;
String docType = getMyfileFileName().split("\\.")[length - 1];// 文件类型
try{//以下判断文件大小的
FileInputStream fiss = new FileInputStream(myfile);
String filesz = String.valueOf(fiss.available()/1000) ;//2000000k===2G
if(Long.parseLong(filesz)>2000000l)
{
try {
response.getWriter().println("<script>alert('上传文件不能超过2G!');window.parent.location.reload();</script>");
} catch (IOException e) {
e.printStackTrace();
}
return null ;
}
}catch(Exception e1){
System.out.println("我的文档上传出错!");
}
// 以下才是正常的文件上传
if (flag) {
String currentTime = (new SimpleDateFormat("yyyyMMdd")) .format(new Date());// 把当前时间当成文件夹名字
File dirFile = new File(ServletActionContext.getServletContext() .getRealPath("/")
+ "upload\\document\\" + currentTime);
if (!dirFile.exists()) {
dirFile.mkdir();
}
String docTitle = request.getParameter("docTitle");// 文件名
String docDescription = request.getParameter("docDescription");// 文件描述
String docPath = "upload\\document\\" + currentTime + "\\" + getMyfileFileName();// 文件路径
// 以服务器的文件保存地址和原文件名建立上传文件输出流
File imageFile = new File(ServletActionContext
.getServletContext().getRealPath("/")
+ "upload\\document\\"
+ currentTime
+ "\\"
+ getMyfileFileName());
copy(myfile, imageFile);
FsDocument fd = new FsDocument();
fd.setUserId(userId);// 用户ID-----现在是死的··以后还得动态得到当前用户
fd.setDocType(docType);// 文档类型
fd.setDocTitle(docTitle);// 文档标题
fd.setDocPath(docPath);// 文档路径
fd.setDocId(0l);// 文档ID
fd.setDocDescription(docDescription);// 文档描述
fd.setCreTime(new Date());// 创建时间
documentService.saveData(fd);
}
try {
response
.getWriter()
.println(
"<script>alert('文件上传成功!');window.parent.location.reload();</script>");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
private void copy(File src, File dst) {
try {
InputStream in = null ;
OutputStream out = null ;
try {
in = new BufferedInputStream( new FileInputStream(src), BUFFER_SIZE);
out = new BufferedOutputStream( new FileOutputStream(dst), BUFFER_SIZE);
byte [] buffer = new byte [BUFFER_SIZE];
while (in.read(buffer) > 0 ) {
out.write(buffer);
}
} finally {
if ( null != in) {
in.close();
}
if ( null != out) {
out.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
|