文档章节

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
用jspsmartupload实现Jsp多文件上传下载,并解...

此例子是基于jspsmartupload组件的,jspsmartupload是一个不错的上传下载组件,但对中文支持不足。若下载的文件名中有汉字,则浏览器在提示另存的文件名时,显示的是一堆乱码,让人看了很不舒...

张志浩
2012/10/08
0
1
Servlet3.0中Servlet的使用

目录 1.注解配置 2.异步调用 3.文件上传 相对于之前的版本,Servlet3.0中的Servlet有以下改进: 支持注解配置。 支持异步调用。 直接有对文件上传的支持。 在这篇文章中我将主要讲这三方面的...

王爵nice
2014/08/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周三乱弹 —— 我们无法成为野兽

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ _刚刚好: 霸王洗发水这波很骚 手机党少年们想听歌,请使劲儿戳(这里) hahahahahahh @嘻酱:居然忘了喝水。 让你喝可乐的话, 你准忘不了...

小小编辑
26分钟前
0
0
vm GC 日志 配置及查看

-XX:+PrintGCDetails 打印 gc 日志 -XX:+PrintTenuringDistribution 监控晋升分布 -XX:+PrintGCTimeStamps 包含时间戳 -XX:+printGCDateStamps 包含时间 -Xloggc:<filename> 可以将数据保存为......

Canaan_
昨天
0
0
学习设计模式——生成器模式

1. 认识生成器模式 1. 定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 2. 组成: Builder:生成器接口,定义创建一个Product对象所需要的各个组件的操作,...

江左煤郎
昨天
0
0
C语言精要(第二章:基本数据类型)

2.1 C语言基本数据类型 在计算机术语中,把⼆进制数中的某⼀位数又称为⼀个⽐特(bit)。⽐特这个单位对于计算机⽽⾔,在度量上是最⼩的单位。除了⽐特之外,还有字节(byte)这个术语。⼀个...

ryanliue
昨天
0
0
实现下拉菜单多选框效果

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><li>工作意愿地:<%-- <c:forEach items="${list}" var="list"><input type="checkbox" value="${list......

lanjian28
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部