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

Commons FileUpload 可以在http://jakarta.apache.org/commons/fileupload/下载

附加的Commons IO  可以在http://jakarta.apache.org/commons/io/下载

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

3.编写相应的代码如下

UploadExample.jsp

<%@ page contentType='text/html;charset=gb2312'%>
<html>
<title><%= application.getServerInfo() %></title>
<body>

上传文件程序应用示例
<form action='doUpload.jsp' method='post' enctype='multipart/form-data'>

<%-- 类型enctype用multipart/form-data,这样可以把文件中的数据作为流式数据上传,不管是什么文件类型,均可上传。--%>
请选择要上传的文件<input type='file' name='upfile' size='50'>
<input type='submit' value='提交'>
</form>
</body>
</html>

doUpload.jsp

<%@ 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("<img src="+imagePath+"upload/images/"+destinationfileName+">");
   }else{
   out.println("上传文件出错,只能上传 *.jpg , *.gif");
   }
   }
//   跳转到上传成功提示页面
   }
   catch(Exception e) {
//   可以跳转出错页面
   }
   out.flush();
   out.close();

%>

JSP上传图片程序的更多相关文章

  1. Tomcat部署发布JSP应用程序的三种方法 (转)

    Tomcat部署发布JSP应用程序的三种方法     1.直接放到Webapps目录下      Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应 ...

  2. jsp上传图片实时显示

    jsp代码 <div class="form-group" id="caseIma"> <label class="control- ...

  3. JSP应用程序(自定义错误页面)

    一.编写 1.index.jsp <%@page contentType="text/html" pageEncoding="UTF-8"%> &l ...

  4. 这两天使用JSP开发程序,记录一些基本方法

    一.截取字符串 第一步 导入包:<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn ...

  5. Tomcat服务器安装与第一个jsp网页程序

    1.安装tomcat服务器之前需要,先安装相应版本的jdk,个人理解Tomcat的大部分功能是使用了java的 jdk jar包的. jdk包下载方式网上可以查到 下载完后可以解压到一个指定目录,并在 ...

  6. 使用tomcat部署jsp程序

    安装java1.6.0到默认目录 下载apache-tomcat-6.0.32-windows-x86.zip,解压到D:\soft目录下 配置环境变量 JAVA_HOME C:\Program Fi ...

  7. Tomcat手工搭建Jsp和Servlet程序

    要执行J2EE的程序,就必须安装相关的容器.而怎样选择JSP+Servlet模式.Tomcat是非常重要的选择之中的一个,是世界上最为广泛的Servlet和JSP容器. 下载: 1. URL: htt ...

  8. java 上传图片

    1.导入smartupload.jar包 ,添加uploadIMG.jsp,upfileIMG.jsp. 2.需要在项目下面建立一个保存文件的文件夹pic或者upload 3.在调用的地方调用子框架u ...

  9. Deformity JSP Webshell、Webshell Hidden Learning

    catalogue . JSP基础语法 . JSP Lexer By Lua . Open Source Code Analyzers in Java . WEBSHELL Samples . she ...

随机推荐

  1. cssdiv设置高宽百分比不起作用的问题

    div等元素设置宽高百分比都是基于包含他的块级对象的百分比高度,所以必须先设置包含它的块级对象高度与宽度,但是光设置body是不起作用的,必须同时设置html和body.   要使用百分比设置div宽 ...

  2. Hive的学习之路(理论篇)

    一.Hive介绍 Apache官网给出的logo,一半是Hadoop大象的头,一半是蜜蜂的身体,也是寓意着它是基于Hadoop,哈哈,纯属个人理解,进入正题. Hive是基于Hadoop的一个数据仓库 ...

  3. dubbo的dispatcher设置原理

    在上回<Dubbo源代码实现六>中我们已经了解到,对于Dubbo集群中的Provider角色,有IO线程池(默认无界)和业务处理线程池(默认200)两个线程池,所以当业务的并发比较高,或者 ...

  4. jsp分割字符串并遍历

    1.先引入JSTL库 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> ...

  5. 设计模式01 创建型模式 - 原型模式(Protype Pattern)

    参考 1. 设计模式:原型模式 | 博客园 2. Java clone深拷贝.浅拷贝 | CSDN 3. Cloneable接口和Object的clone()方法 | 博客园 原型模式(Prototy ...

  6. Hibernate框架报错:org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.mikey.hibernate.domain.Person.pid

    报错信息 org nate.PropertyAccessException:IllegalArgumentException在调用com.mikey.Hibernate.domain.Person.p ...

  7. 吴裕雄--天生自然数据结构与算法:java代码实现常用数据结构——链表Linked List

    class Node{ // 定义节点类 private String data ; // 保存节点内容 private Node next ; // 表示保存下一个节点 public Node(St ...

  8. 物联网协议CoAP协议学习

    CoAP:Constrained Application Protocol协议是为物联网中资源受限的设备制定的应用层协议,即简化版的基于UDP的HTTP协议.其核心内容为资源抽象.REST式交互可扩展 ...

  9. 第1节 Scala基础语法:3、环境;4、插件

    1.    Scala编译器安装 1.1.   安装JDK 因为Scala是运行在JVM平台上的,所以安装Scala之前要安装JDK. 1.2.   安装Scala 1.2.1.    Windows ...

  10. Linux命令:netstat命令

    netstat功能:显示网络连接情况 netstat功能选项 -t:tcp协议的连接 -u:udp协议的链接 -l:监听状态的连接 -a:所有状态的连接 -p:连接相关的进程 -n:数字格式显示 -r ...