Java Web——图像上传
一、jsp中:
1 <body> 2 <!-- 注意: 1. type="file"; 2.method="post" ; 3.enctype="multipart/form-data" --> 3 <form action="UploadServlet" method="post" enctype="multipart/form-data"> 4 雇员编号:<input type="text" name="empno"/><br/><br/> 5 雇员姓名:<input type="text" name="ename"/><br/><br/> 6 所在部门: 7 <select name="deptno"> 8 <option value="10">销售部</option> 9 <option value="20">IT部</option> 10 <option value="30">人力部</option> 11 </select><br/><br/> 12 验证码:<input type="text" name="code"><img id="code" alt="请刷新" src="validateCodeServlet" οnclick="changeCode()" style="cursor:hand;"><a href="javascript:changeCode()">换一张</a><br/><br/> 13 14 15 头像:<input type="file" name="uploadFile"> 16 <img src="${image_path}" title="${image_name}" width="200" height="200"> 17 <br/><br/> 18 19 <input type="reset" value="重置"/> 20 <input type="submit" value="注册"/> 21 </form> 22 </body> 23 </html>
二、导入工具包
三、servlet中取得数据
package servlet;import java.io.File; import java.io.IOException; import java.util.Date; import java.util.Iterator; import java.util.List;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload;/*** Servlet implementation class UploadServlet*/ @WebServlet("/UploadServlet") public class UploadServlet extends HttpServlet {private static final long serialVersionUID = 1L;protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//判断上传表单是否为multipart/form-data类型if(ServletFileUpload.isMultipartContent(request)){try {//1. 创建DiskFileItemFactory对象,设置缓冲区大小和临时文件目录DiskFileItemFactory factory = new DiskFileItemFactory();//System.out.println(System.getProperty("java.io.tmpdir"));//默认临时文件夹//2. 创建ServletFileUpload对象,并设置上传文件的大小限制。ServletFileUpload sfu = new ServletFileUpload(factory);sfu.setSizeMax(10*1024*1024);//以byte为单位 不能超过10M 1024byte = 1kb 1024kb=1M 1024M = 1Gsfu.setHeaderEncoding("utf-8");//3. 调用ServletFileUpload.parseRequest方法解析request对象,得到一个保存了所有上传内容的List对象。List<FileItem> fileItemList = sfu.parseRequest(request);Iterator<FileItem> fileItems = fileItemList.iterator();//4. 遍历list,每迭代一个FileItem对象,调用其isFormField方法判断是否是上传文件while(fileItems.hasNext()){FileItem fileItem = fileItems.next();//普通表单元素if(fileItem.isFormField()){String name = fileItem.getFieldName();//name属性值String value = fileItem.getString("utf-8");//name对应的value值 System.out.println(name + " = "+value);}//<input type="file">的上传文件的元素else{String fileName = fileItem.getName();//文件名称System.out.println("原文件名:" + fileName);//Koala.jpg String suffix = fileName.substring(fileName.lastIndexOf('.'));System.out.println("扩展名:" + suffix);//.jpg//新文件名(唯一)String newFileName = new Date().getTime() + suffix;System.out.println("新文件名:" + newFileName);//image\1478509873038.jpg//5. 调用FileItem的write()方法,写入文件File file = new File(request.getServletContext().getRealPath("image")+"\\"+newFileName);System.out.println(file.getAbsolutePath());fileItem.write(file);//6. 调用FileItem的delete()方法,删除临时文件 fileItem.delete();/** 存储到数据库时注意* 1.保存源文件名称 Koala.jpg* 2.保存相对路径 image/1478509873038.jpg* */request.setAttribute("image_name",fileName);request.setAttribute("image_path","image/"+newFileName);request.getRequestDispatcher("/upload.jsp").forward(request, response);}}} catch (FileUploadException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}}}}
转载于:https://www.cnblogs.com/ccw95/p/6040256.html
Java Web——图像上传相关推荐
- 在k8s中使用gradle构建java web项目镜像Dockerfile
在k8s中使用gradle构建java web项目镜像Dockerfile FROM gradle:6-jdk8 AS build COPY --chown=gradle:gradle . /home ...
- Jenkins 2.16.3默认没有Launch agent via Java Web Start,如何配置使用
问题:Jenkins 2.16.3默认没有Launch agent via Java Web Start,如下图所示,而这种启动方式在Windows上是最方便的. 如何设置才能让出来呢? 打开&quo ...
- Java Web项目结构
Java Web项目结构(一般) 1.Java src 2.JRE System Library 3.Java EE 6 Libraries 4.Web App Libraries 5.WebRoot ...
- Java Web 中的一些问题
http://localhost:8080/struts2demo/online/userLogin.jsp 请求模式 :// 主机名名称(或者服务器名称) : 端口 / Servlet容器的名称(通 ...
- java web ubuntu_Ubuntu部署Java web项目
登录服务器和给服务器传输文件,使用的工具是Xshell Xftp Mysql 安装mysql 输入:sudo apt-get update 更新软件列表 输入: ...
- JAVA Web项目中所出现错误及解决方式合集(不断更新中)
JAVA Web项目中所出现错误及解决方式合集 前言 一.几个或许会用到的软件下载官网 二.Eclipse的[preferences]下没有[sever]选项 三.Tomcat的安装路径找不到 四.T ...
- 使用Netbeans创建java Web项目
使用Netbeans创建java Web项目 需要先搭建JDK参考: Java开发环境的搭建以及使用eclipse创建项目 Linux环境安装卸载JDK 1.安装Tomcat 去官网下载最新的T ...
- java axis2 开发_基于Apache axis2开发Java Web服务
1.安装配置axis2环境 下载好后把axis2-1.4.1-war目录下面的axis2.war发布到tomcat的webapps中. 发布好,访问:http://localhost:8079/axi ...
- java web三大组件之filter过滤器
过滤器是java web中相当重要的组成成分,是JavaWeb三大组件之一,它与Servlet很相似.不过过滤器有以下三条特性: 过滤器是用来拦截请求的,而不是处理请求的. 当用户请求某个Servle ...
最新文章
- 网页素材大宝库:高质量的免费 PSD 素材【系列四】
- 【软件工程】填空题题库
- ansible自动化管理
- TopN算法与排行榜
- ASP.NET MVC Global.cs - 应用程序事件
- 在Activity启动过程中如何任务栈的栈顶是否是将要启动的Activity的实例
- mysql查询姓王的信息代码_MySQL查询语句练习题
- 如何改变maven项目的pom文件中默认的主代码目录 以及默认的测试代码目录?
- mac新建react脚手架
- Heritrix 3.1.0 源码解析(十四)
- [VGG16]——网络结构介绍及搭建(PyTorch)
- 2018DeeCamp笔试题目第二套B卷
- google账号如何正确登陆
- Hadoop回顾:(一)Hadoop生态系统简介
- android自定义相机打开闪光灯,Android 照相机(闪光灯,切换摄像头)
- Internet——Download——Manager学习记录
- ResourceUtils
- Magento 数据库EVA
- ArcGIS的栅格数据空间分析——栅格插值(1)
- go实现dgraph的各种操作
热门文章
- 收银系统服务器数据库,收银系统服务器数据库
- android gradle is插件,android gradle 插件创建 configuration
- mysql+零时数据结构,MySql主要索引数据结构
- asp.net mvc连接mysql_asp.net mvc4连接mysql
- android view setx,Android的setX()和setY()表现不可思议
- mariadb 和mysql主从_MariaDB主从同步
- PyCharm配置anaconda环境 安装第三方库
- sess.run()详解
- python抽奖游戏大全_抽奖游戏
- 数据结构与算法(3)——树(二叉、二叉搜索树)