博客
关于我
强烈建议你试试无所不能的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

你可能感兴趣的文章
国外常见互联网盈利创新模式
查看>>
Oracle-05
查看>>
linux grep 搜索查找
查看>>
Not enough free disk space on disk '/boot'(转载)
查看>>
android 签名
查看>>
android:scaleType属性
查看>>
mysql-5.7 innodb 的并行任务调度详解
查看>>
shell脚本
查看>>
Upload Image to .NET Core 2.1 API
查看>>
Js时间处理
查看>>
【雷电】源代码分析(二)-- 进入游戏攻击
查看>>
Entityframework:“System.Data.Entity.Internal.AppConfig”的类型初始值设定项引发异常。...
查看>>
Linux中防火墙centos
查看>>
如何设置映射网络驱动器的具体步骤和方法
查看>>
centos下同时启动多个tomcat
查看>>
slab分配器
查看>>
【读书笔记】C#高级编程 第三章 对象和类型
查看>>
【SVM】libsvm-python
查看>>
Jmeter接口压力测试,Java.net.BindException: Address already in use: connect
查看>>
Leetcode Balanced Binary Tree
查看>>