博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jsp中简易版本的图片上传程序
阅读量:5267 次
发布时间:2019-06-14

本文共 3024 字,大约阅读时间需要 10 分钟。

1.下载相应的组件的最新版本

Commons FileUpload 可以在下载

附加的Commons IO  可以在下载

2.将commons-fileupload-1.2.1.jar commons-io-1.4.jar拷贝到$TOMCAT\common\lib目录下

3.具体调用代码如下:

3.1 上传页面代码:

//UploadExample.jsp <%@ page contentType='text/html;charset=gb2312'%><%= application.getServerInfo() %>上传文件程序应用示例
<%-- 类型enctype用multipart/form-data,这样可以把文件中的数据作为流式数据上传,不管是什么文件类型,均可上传。--%>请选择要上传的文件

3.2 后台处理页面

<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="GBK"%><%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%><%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%><%@ page import="org.apache.commons.fileupload.*"%><% response.setContentType("text/html");//   图片上传路径   String uploadPath =request.getSession().getServletContext().getRealPath("/")+"upload/images/";//   图片临时上传路径   String tempPath = request.getSession().getServletContext().getRealPath("/")+"upload/images/temp/";//   图片网络相对路径   String imagePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/"; //   文件夹不存在就自动创建:   if(!new File(uploadPath).isDirectory())   new File(uploadPath).mkdirs();   if(!new File(tempPath).isDirectory())   new File(tempPath).mkdirs();   try {   DiskFileUpload fu = new DiskFileUpload();//   设置最大文件尺寸,这里是4MB   fu.setSizeMax(4194304);//   设置缓冲区大小,这里是4kb   fu.setSizeThreshold(4096);//   设置临时目录:   fu.setRepositoryPath(tempPath);//   得到所有的文件:   List fileItems = fu.parseRequest(request);   Iterator i = fileItems.iterator();//   依次处理每一个文件:   while(i.hasNext()) {   FileItem file = (FileItem)i.next();//   获得文件名,这个文件名是用户上传时用户的绝对路径:   String sourcefileName = file.getName();   if(sourcefileName!=null&&(sourcefileName.endsWith(".jpg")||sourcefileName.endsWith(".gif"))) {//   在这里可以记录用户和文件信息,生成上传后的文件名   String destinationfileName=null;   Random rd = new Random();   Calendar time = Calendar.getInstance();   if(sourcefileName.endsWith(".jpg")){   destinationfileName=String.valueOf(time.get(Calendar.YEAR))   + String.valueOf(time.get(Calendar.MONTH))   + String.valueOf(time.get(Calendar.DAY_OF_MONTH))   + String.valueOf(time.get(Calendar.HOUR_OF_DAY))   + String.valueOf(time.get(Calendar.MINUTE))   + String.valueOf(time.get(Calendar.SECOND))   + String.valueOf(rd.nextInt(100)) + ".jpg";   }else if(sourcefileName.endsWith(".gif")){   destinationfileName=String.valueOf(time.get(Calendar.YEAR))   + String.valueOf(time.get(Calendar.MONTH))   + String.valueOf(time.get(Calendar.DAY_OF_MONTH))   + String.valueOf(time.get(Calendar.HOUR_OF_DAY))   + String.valueOf(time.get(Calendar.MINUTE))   + String.valueOf(time.get(Calendar.SECOND))   + String.valueOf(rd.nextInt(100)) + ".gif";   }   File f1=new File(uploadPath+ destinationfileName);   file.write(f1);   out.print(sourcefileName+"成功上传!") ;   out.print("");   }else{   out.println("上传文件出错,只能上传 *.jpg , *.gif");   }   }//   跳转到上传成功提示页面   }   catch(Exception e) {//   可以跳转出错页面   }   out.flush();   out.close();%>

  

 

转载于:https://www.cnblogs.com/haore147/p/3617999.html

你可能感兴趣的文章
python 之 循环语句
查看>>
心得25--JDK新特性9-泛型1-加深介绍
查看>>
[转]ceph网络通信模块_以monitor模块为例
查看>>
HDOJ 1754 I Hate It(线段树基本操作)
查看>>
latex tree
查看>>
安装NVIDIA驱动时禁用自带nouveau驱动
查看>>
HDU-1255 覆盖的面积 (扫描线)
查看>>
css3学习01
查看>>
【USACO】 奶牛会展
查看>>
ActiveMQ笔记之点对点队列(Point-to-Point)
查看>>
继承和多态
查看>>
Dijkstra+计算几何 POJ 2502 Subway
查看>>
修复IE不能执行JS的方法
查看>>
程序员究竟该如何提高效率zt
查看>>
希尔排序法(缩小增量法)
查看>>
PHP编程基础学习(一)——数据类型
查看>>
MongoDB-JAVA-Driver 3.2版本常用代码全整理(2) - 查询
查看>>
NPOI处理Word文本中上下角标
查看>>
Android笔记 Handler
查看>>
如何阅读大型前端开源项目的源码(转)
查看>>