javaweb文件上传源码
程序员文章站
2022-05-08 17:05:59
...
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8");
//上传
try {
//判断前台的form是否又mutipart属性
boolean isMutipart=ServletFileUpload.isMultipartContent(request);
if(isMutipart) {
FileItemFactory factory=new DiskFileItemFactory();
ServletFileUpload upload=new ServletFileUpload(factory);
//设置缓冲文件的大小
//factory.setsizeThreshold()
//设置临时文件的目录
//factory.setRepository(new File("...."))
//控制上传文件的大小
upload.setSizeMax(20480);
//通过parseRequest解析form中所有请求字段,并保存到items集合中
List<FileItem> items=upload.parseRequest(request);
Iterator<FileItem> iter=items.iterator();
while(iter.hasNext()) {
FileItem item=iter.next();
String itemName=item.getFieldName();
int sno=-1;
String sname=null;
//判断前端字段是普通from表单字段还是文件字段、
if(item.isFormField()) {
if(itemName.equals("sno")) {
//根据name字段属性判断item是sno,sname 还是其他
sno=Integer.parseInt(item.getString("utf-8"));
}else if(itemName.equals("sname")) {
sname=item.getString("utf-8");
}else {
System.out.println("其他字段......");
}
}else {//spicture
//文件上传处理
//getfieldname 拿的是普通表单的字段
String fileName=item.getName();
//获取文件名的后缀,判断类型
String ext=fileName.substring(fileName.indexOf(".")+1);
if(!(ext.equals("png")||ext.equals("gif")||ext.equals("jpg"))) {
System.out.println("图片类型有误,格式只能是png jpg jpg");
return;
}
//获取文件内容上传
//定义文件路径 一般是服务器路径
String path=request.getSession().getServletContext().getRealPath("upload");
File file=new File(path,fileName);
item.write(file);
System.out.println(fileName+"上传成功");
return;
}
}
}
}catch(FileUploadBase.SizeLimitExceededException e) {
System.out.println("上传文件大小超过限制!最大不能超过20kb");
}catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
上一篇: 标准库中的管道
下一篇: Winform执行CMD命令