<%
%>
01、获取文件上传的真实路径(就是你要把文件保存在项目的什么地方?)
//获取文件的上传的具体目录,就是你的web项目的真实路径
String realPath = request.getSession().getServletContext().getRealPath(“/”);
//定义上传的目录
String dirPath = realPath+“/upload”;
File dirFile = new File(dirPath);
02、如果该路径不存在就自动创建
//自动创建上传的目录
if(!dirFile.exists())dirFile.mkdirs();
我们把上传的文件放在WebContent目录下,也就是项目根路径下的一个叫做upload的文件夹内,如果没有,就自动创建一个。
03、进行上传操作,文件名用UUID
//上传操作
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
String fileName = null;
HashMap<String,Object> map = new HashMap<String,Object>();
try{
List items = upload.parseRequest(request);
if(null != items){
Iterator itr = items.iterator();
while(itr.hasNext()){
FileItem item = (FileItem)itr.next();
if(item.isFormField()){
continue;
}else{
fileName = UUID.randomUUID().toString()+getExt(item.getName());
//上传文件的目录
File savedFile = new File(dirPath,fileName);
item.write(savedFile);
map.put(“name”,item.getName());//文件的重视名称
map.put(“size”,item.getSize());//文件的真实大小
map.put(“sizeString”,countFileSize(item.getSize()));//获取文件转换以后的大写
map.put(“url”,“upload/”+fileName);//获取文件的具体服务器的目录
}
}
}
}catch(Exception e){
e.printStackTrace();
}
最后,在新的页面打印文件的具体信息:
out.print(JSONUtil.serialize(map));
辅助函数:
<%!
/**
- 文件大小转换成格式化的字符串
*/
public static String countFileSize(long fileSize) {
String fileSizeString = “”;
try {
DecimalFormat df = new DecimalFormat(“#.00”);
long fileS = fileSize;
if (fileS == 0) {
fileSizeString = “0KB”;
} else if (fileS < 1024) {
fileSizeString = df.format((double) fileS) + “B”;
} else if (fileS < 1048576) {
fileSizeString = df.format((double) fileS / 1024) + “KB”;
} else if (fileS < 1073741824) {
fileSizeString = df
.format(((double) fileS / 1024 / 1024) - 0.01)
- “MB”;
} else {
fileSizeString = df.format((double) fileS / 1024 / 1024 / 1024)
- “G”;
}
} catch (Exception e) {
e.printStackTrace();
}
return fileSizeString;
}
必看视频!获取2024年最新Java开发全套学习资料 备注Java
/**
-
获取一个文件的后缀(带有点)
-
@param fileName
-
文件名
-
@return 返回文件的后缀
*/
public static String getExt(String fileName) {
int pos = fileName.lastIndexOf(“.”);
if (pos == -1)
return “”;
return fileName.substring(pos, fileName.length());
}
/**
-
获取一个文件的后缀(不带有点)
-
@param fileName
-
文件名
-
@return 返回文件的后缀
*/
public static String getExtNoPoint(String fileName) {
if (fileName.lastIndexOf(“.”) == -1)
return “”;
int pos = fileName.lastIndexOf(“.”) + 1;
return fileName.substring(pos, fileName.length());
}
%>
OK,现在启动tomcat服务器。
没报错。
因为在web.xml里面配置了欢迎页,所以直接访问。
随便上传一张图片,点击文件上传,
报错了,看样子还是缺少jar包。
Java面试核心知识点笔记
其中囊括了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。
Java中高级面试高频考点整理
最后分享Java进阶学习及面试必备的视频教学
ar包。
Java面试核心知识点笔记
其中囊括了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。
[外链图片转存中…(img-D432GE6s-1716356787305)]
Java中高级面试高频考点整理
[外链图片转存中…(img-iMXTIcMc-1716356787306)]
[外链图片转存中…(img-CSpIso1c-1716356787306)]
最后分享Java进阶学习及面试必备的视频教学
[外链图片转存中…(img-ioXG5rHi-1716356787307)]