JSP上传图片程序
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上传图片程序的更多相关文章
- Tomcat部署发布JSP应用程序的三种方法 (转)
Tomcat部署发布JSP应用程序的三种方法 1.直接放到Webapps目录下 Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应 ...
- jsp上传图片实时显示
jsp代码 <div class="form-group" id="caseIma"> <label class="control- ...
- JSP应用程序(自定义错误页面)
一.编写 1.index.jsp <%@page contentType="text/html" pageEncoding="UTF-8"%> &l ...
- 这两天使用JSP开发程序,记录一些基本方法
一.截取字符串 第一步 导入包:<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn ...
- Tomcat服务器安装与第一个jsp网页程序
1.安装tomcat服务器之前需要,先安装相应版本的jdk,个人理解Tomcat的大部分功能是使用了java的 jdk jar包的. jdk包下载方式网上可以查到 下载完后可以解压到一个指定目录,并在 ...
- 使用tomcat部署jsp程序
安装java1.6.0到默认目录 下载apache-tomcat-6.0.32-windows-x86.zip,解压到D:\soft目录下 配置环境变量 JAVA_HOME C:\Program Fi ...
- Tomcat手工搭建Jsp和Servlet程序
要执行J2EE的程序,就必须安装相关的容器.而怎样选择JSP+Servlet模式.Tomcat是非常重要的选择之中的一个,是世界上最为广泛的Servlet和JSP容器. 下载: 1. URL: htt ...
- java 上传图片
1.导入smartupload.jar包 ,添加uploadIMG.jsp,upfileIMG.jsp. 2.需要在项目下面建立一个保存文件的文件夹pic或者upload 3.在调用的地方调用子框架u ...
- Deformity JSP Webshell、Webshell Hidden Learning
catalogue . JSP基础语法 . JSP Lexer By Lua . Open Source Code Analyzers in Java . WEBSHELL Samples . she ...
随机推荐
- CSS水平垂直居中常见方法总结2
1.文本水平居中line-height,text-align:center(文字)元素水平居中 margin:0 auo 方案1:position 元素已知宽度 父元素设置为:position: re ...
- dp求解各种子串子序列
目录 概念 最长上升子序列 最长连续子串 最长公共子序列 最长公共上升子序列 注:dp可能并不是求解该这些问题的最优算法,这里只是做一个dp 算法的简介. 概念 定义:假设现有一个 string = ...
- [ DLPytorch ] word2vec&词嵌入
word2vec WordEmbedding 对词汇进行多维度的描述,形成一个密集的矩阵.这样每两个词之间的相似性可以通过进行内积的大小体现出来.越大说明距离越远,则越不相似. Analogies(类 ...
- Git - 删除github上的提交历史
参考 https://segmentfault.com/q/1010000002898735 https://stackoverflow.com/questions/1338728/delete-co ...
- Hibernate笔记一
背景 jdbc的优缺点 A:直接操作底层,提供了简单,便捷的访问数据库方法,跨平台比较强,灵活,可以写很多赋值的SQL语句:是最底层的数据库操作,所以效率比较高,Sql语句可以自己选择写,采用效率最高 ...
- MySQL(window10)加载配置文件的顺序
mysql加载配置的顺序为:(mysql --help中有详细的说明) C:\WINDOWS\my.ini C:\WINDOWS\my.cnf C:\my.ini C:\my.cnf D:***\my ...
- P1029最大公约数和最小公倍数
P1029最大公约数和最小公倍数 #include <iostream> #include <cmath> #include <algorithm> #define ...
- Lora笔记
Lora笔记 2016-03-26 [概述] LPWAN技术 无线跳频技术简介 https://bitbucket.org/ [节点] SX1278测试 SX1278测试 SX1276调试总结 LoR ...
- JS 一次性事件问题
项目的需求就是不能重复提交 是通过click点击事件提交数据,到这里的时候想了很多办法,比如说销毁这个点击事件, 但是这个实现起来是相对比较麻烦的,后面想到了一个相对比较简单的办法 通过推荐判断 JS ...
- 5.1 Nginx的基本配置
备注:worker_processes 1(数量建议跟系统CPU的核数相同,例如:2个CPU,每个CPU4核,建议为8),worker_connections 建议小于worker_rlimit_no ...