分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

jsp上传文件

发布时间:2023-09-06 01:41责任编辑:傅花花关键词:jsjsp

我是一名初学jsp菜鸟,今天就把自己所写的jsp上传文件的代码给大家分享一下,希望和大家多多交流,互相学习。望指教!

一、单纯的上传文件

 1 <% 2 ????????request.setCharacterEncoding("utf-8"); 3 ????????String uploadFileName=""; ???//上传的文件名 4 ????????String fieldName=""; ???????????//表单字段元素的name属性值 5 ????????//请求信息中的内容是否是multipart类型 6 ????????boolean isMultipart=ServletFileUpload.isMultipartContent(request); 7 ????????//上传文件的存储路径(服务器文件系统上的绝对文件路径) 8 ????????String uploadFilePath=request.getSession().getServletContext().getRealPath("upload/"); 9 ????????if(isMultipart){10 ????????????FileItemFactory factory=new DiskFileItemFactory();11 ????????????ServletFileUpload upload=new ServletFileUpload(factory);12 ????????????try{13 ????????????????//解析form表单中所有文件14 ????????????????List<FileItem> items=upload.parseRequest(request);15 ????????????????Iterator<FileItem> iter=items.iterator();16 ????????????????while(iter.hasNext()){ ???????//依次处理每个文件17 ????????????????????FileItem item=(FileItem)iter.next();18 ????????????????????if(item.isFormField()){ ???????//普通表单字段19 ????????????????????????fieldName=item.getFieldName(); ???????//表单字段的name属性值20 ????????????????????????if("user".equals(fieldName)){21 ????????????????????????????//输出表单字段的值22 ????????????????????????????out.print(item.getString("utf-8")+"上传了文件<br/>");23 ????????????????????????}24 ????????????????????}else{ ???//文件表单字段25 ????????????????????????String fileName=item.getName();26 ????????????????????????if(fileName!=null&&!"".equals(fileName)){27 ????????????????????????????File fullFile=new File(item.getName());28 ????????????????????????????File saveFile=new File(uploadFilePath,fullFile.getName());29 ????????????????????????????item.write(saveFile);30 ????????????????????????????uploadFileName=fullFile.getName();31 ????????????????????????????out.print("上传成功后的文件名是:"+uploadFileName);32 ????????????????????????}33 ????????????????????}34 ????????????????}35 ????????????}catch(Exception e){36 ????????????????e.printStackTrace();37 ????????????}38 ????????}39 ?????%> 

二、上传指定格式的文件

<%request.setCharacterEncoding("utf-8"); ???String uploadFileName="";//上传的文件名 ???String fieldName="";//表单字段元素的name属性值 ???//请求信息中的内容是否是multipart类型 ???boolean isMultipart=ServletFileUpload.isMultipartContent(request); ???//上传文件的存储路径(服务器文件系统上的绝对文件路径) ???String uploadFilePath=request.getSession().getServletContext().getRealPath("upload/"); ???if(isMultipart){ ???FileItemFactory factory=new DiskFileItemFactory(); ???ServletFileUpload upload=new ServletFileUpload(factory); ???try{ ???//解析form表单中所有文件 ???List<FileItem> items=upload.parseRequest(request); ???Iterator<FileItem> iter=items.iterator(); ???while(iter.hasNext()){//依次处理每个文件 ???FileItem item=(FileItem)iter.next(); ???if(item.isFormField()){//普通表单字段 ???fieldName=item.getFieldName();//表单字段的name属性值 ???if("user".equals(fieldName)){ ???//输出表单字段的值 ???out.print(item.getString("utf-8")+"上传了文件<br/>"); ???} ???}else{//文件表单字段 ???String fileName=item.getName(); ???//通过Arrays类的asList()方法创建固定长度的集合 ???List<String> fileType=Arrays.asList("gif","bmp","jpg"); ???String ext=fileName.substring(fileName.lastIndexOf(".")+1); ???if(!fileType.contains(ext)){//判断文件类型是否在允许的范围类 ???out.print("上传失败,文件类型只能是gif、bmp、jpg"); ???}else{ ???if(fileName!=null&&!"".equals(fileName)){ ???File fullFile=new File(item.getName()); ???File saveFile=new File(uploadFilePath,fullFile.getName()); ???item.write(saveFile); ???uploadFileName=fullFile.getName(); ???out.print("上传成功后的文件名是:"+uploadFileName); ???} ???} ???} ???} ???}catch(Exception e){ ???e.printStackTrace(); ???} ???} ??%> 

 三、上传指定格式的文件并限制文件大小

 ?<%request.setCharacterEncoding("utf-8"); ???String uploadFileName="";//上传的文件名 ???String fieldName="";//表单字段元素的name属性值 ???//请求信息中的内容是否是multipart类型 ???boolean isMultipart=ServletFileUpload.isMultipartContent(request); ???//上传文件的存储路径(服务器文件系统上的绝对文件路径) ???String uploadFilePath=request.getSession().getServletContext().getRealPath("upload/"); ???//创建临时文件目录路径 ???File tempPatchFile=new File("d:/temp/buffer/"); ???if(!tempPatchFile.exists()){ ???tempPatchFile.mkdirs();//创建指定的目录,包括所有必须但不存在的父目录 ???} ???if(isMultipart){ ???DiskFileItemFactory factory=new DiskFileItemFactory(); ???//设置缓冲区大小4kb ????factory.setSizeThreshold(4096); ???//设置上传文件用到临时文件存放路径 ???factory.setRepository(tempPatchFile); ???ServletFileUpload upload=new ServletFileUpload(factory); ???//设置一个完整请求的最大允许大小 ???upload.setSizeMax(1024*1200); ???try{ ???//解析form表单中所有文件 ???List<FileItem> items=upload.parseRequest(request); ???Iterator<FileItem> iter=items.iterator(); ???while(iter.hasNext()){//依次处理每个文件 ???FileItem item=(FileItem)iter.next(); ???if(item.isFormField()){//普通表单字段 ???fieldName=item.getFieldName();//表单字段的name属性值 ???if("user".equals(fieldName)){ ???//输出表单字段的值 ???out.print(item.getString("utf-8")+"上传了文件<br/>"); ???} ???}else{//文件表单字段 ???String fileName=item.getName(); ???//通过Arrays类的asList()方法创建固定长度的集合 ???List<String> fileType=Arrays.asList("gif","bmp","jpg"); ???String ext=fileName.substring(fileName.lastIndexOf(".")+1); ???if(!fileType.contains(ext)){//判断文件类型是否在允许的范围类 ???out.print("上传失败,文件类型只能是gif、bmp、jpg"); ???}else{ ???if(fileName!=null&&!"".equals(fileName)){ ???File fullFile=new File(item.getName()); ???File saveFile=new File(uploadFilePath,fullFile.getName()); ???item.write(saveFile); ???uploadFileName=fullFile.getName(); ???out.print("上传成功后的文件名是:"+uploadFileName+",文件大小是:"+item.getSize()+"bytes!"); ???} ???} ???} ???} ???}catch(FileUploadBase.SizeLimitExceededException ex){ ???out.print("上传失败,文件太大,全部文件的最大限制是:"+upload.getSizeMax()+"bytes!"); ???}catch(Exception e){ ???e.printStackTrace(); ???} ???} ??%>

jsp上传文件

原文地址:https://www.cnblogs.com/ggl5250703/p/8412834.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved