文档章节

jsp中使用form实现文本和文件上传

 郭里奥
发布于 2017/09/11 18:44
字数 347
阅读 12
收藏 0

使用jsp处理文件的上传时,会使用form表单进行数据(文本和文件)的提交<form action="" enctype="multipart/form-data" method="post"> action就是这个form中的数据提交的目标位置,enctype设置规定在发送到服务器之前如何对数据进行编码(application/x-www-form-urlencoded默认的编码,不可以上传文件,multipart/form-data用于上传文件时使用,text/plain为规范的编码,不推荐使用)method须设置为post。

<form action="/DoAddProject" enctype="multipart/form-data" method="post">
  <input type="file" name="projectImg"/>
  <input type="text" name="choose" />
<input type="submit" value="提交" />

前端的页面设置好之后,在servlet中进行数据的接收和存储需要使用upload这个插件。upload插件下载

放在项目的web-content下的web-inf下的lib目录下,接下来刷新项目。
创建一个servlet进行数据的接收。要在servlet上加@WebServlet("对应form表格中action的uri")
doPost的方法如下:

//set request and response encoding
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");

//new FileItemFactory instance and ServletFileUpload instance
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);

//parse request
List<FileItem> items = upload.parseRequest(request);
while(items.hasNext()){

  FileItem item = (FileItem) itr.next();

  // isFormField() true : item is text field, false is file field
  if (item.isFormField()){

    //get input name

    String fName = item.getFieldName();

    //get input value

    String fValue = item.getString();

}else{

	String fileName = new File(item.getName()).getName(); 

	File storeFile = new 	File(fileName); 

	if(storeFile.exists()){ 

	    storeFile.delete(); 

	} 
    // save to disk 
  	item.write(storeFile);
    //item.get() method,  return the file content as byte array

}

}

 

© 著作权归作者所有

共有 人打赏支持
粉丝 1
博文 14
码字总数 6901
作品 0
西安
程序员
私信 提问
jsp上传文件fileupload

手把手教Jsp上传文件(FileUpload+Servlet) 本教程以Apache组织的commons项目中的FileUpload项目做为jsp的文件上传组件,FileUpload项目完全尊守RFC1867规范中 关于在HTTP request 中通过Post方...

功夫panda
2012/02/20
0
0
SpringMVC实现上传和下载

package com.pk.web.controller; import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.mult......

Jeremy_pan
2014/09/06
0
4
Java中的文件上传(原始Servlet实现)

从原始的Servlet来实现文件的上传,代码如下: 参考:https://my.oschina.net/Barudisshu/blog/150026 采用的是Multipart/form-data的方式上传文件。针对Multipart/form-data方式的上传解释,...

easonjim
2017/03/15
0
0
java web开发中需要弄清楚的一些概念

1.getParameter和getAttribute区别 rquest.getParameter() 获取POST/GET传递的参数值,返回的是String,用于读取提交的表单中的值; rquest.getAttribute() getAttribute是取得jsp中 用setAttr...

FoxHu
2011/12/03
0
1
Servlet 3.0 新特性详解

简介: Servlet 是 Java EE 规范体系的重要组成部分,也是 Java 开发人员必须具备的基础技能,Servlet 3.0 是 Servlet 规范的最新版本。本文主要介绍了 Servlet 3.0 引入的若干重要新特性,包...

红薯
2010/04/23
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

网易免费企业邮箱配置客户端

网易免费企业邮箱客户端(pop、imap、smtp)权限默认开启,对应服务器地址为: 发件服务器: SMTP:smtp.ym.163.com 默认端口为:25 (如勾选ssl安全链接,端口号为994) 收件服务器: POP3...

柴高八斗之父
14分钟前
0
0
Hanlp在ubuntu中的使用方法介绍

HanLP的一个很大的好处是离线开源工具包,换而言之,它不仅提供免费的代码免费下载,而且将辛苦收集的词典也对外公开啦,此诚乃一大无私之举.我在安装的时候,主要参照这份博客: blog.csd...

左手的倒影
18分钟前
1
0
软件架构的案例(架构学习九)

阿里技术演变过程 liunx+php+apache+mysql(淘宝网成立) oracle(淘宝旺旺、支付宝、sql relay、十万级) Java1.0(Java、EJB、Mysql、orm、淘宝MVC、weblogic、百万级) java2.0(数据分库...

zzx10
18分钟前
1
0
用9种办法解决 JS 闭包经典面试题之 for 循环取 i

闭包 正确的说,应该是指一个闭包域,每当声明了一个函数,它就产生了一个闭包域(可以解释为每个函数都有自己的函数栈),每个闭包域(Function 对象)都有一个 function scope(不是属性),function ...

Jack088
21分钟前
0
0
Yearning基于Inception的开源SQL审核平台

基础环境: python3 nodejs vuejs mysql python-ldap pymysql mysql 新建数据库 create database Yearning DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; Navicat导入初始化数据 : ......

以谁为师
38分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部