Jsp实现form的file和text传递(multipart/form-data)
Jsp实现form的file和text传递(multipart/form-data)
首先是form部分,因为要有<input type="file" />的类型,所以需要添加enctype="multipart/form-data"这一参数,实现大文件传递
表单部分
<form action="addHomework.jsp" method="post" enctype = "multipart/form-data">
	课程号: <input type="text" name="course_id" value="<%=course_id%>" /><br /><br />
	作业号: <input type="text" name="homework_id" value="<%=homework_id%>" /><br /><br />
	作业标题: <input type="text" name="homework_title"
		value="<%=homework_title%>" /><br /><br />
	作业描述: <input type="text"
		name="homework_description" value="<%=homework_description%>" /><br /><br />
	附件: <input type="file" name="detail_attach_file"
		value="<%=detail_attach_file%>" /><br /><br />
	DDL: <input
		type="date" name="ddl" value="<%=ddl%>"/><br /><br />
	<input type="submit"
		value="发布" name="postHomework"><br /><br />
	<%=hintToUser%>
</form>
Java部分
<%@ page import="java.util.*" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ include file="MySQLHelper.jsp"%>
<%@ page import="org.apache.commons.fileupload.FileItem" %>
<%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory" %>
<%@ page import="org.apache.commons.fileupload.FileUploadException" %>
<%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload" %>
<%
	String method = request.getMethod();
	String course_id = "";
	String homework_id = "";
	String homework_title = "";
	String homework_description = "";
	String detail_attach_file = "";
	String post_date = "";
	String ddl = "";
	String hintToUser = "";
	if (method.equals("POST")) {
		DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
		ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory);
		try {
			List list = servletFileUpload.parseRequest(request);
			Iterator iterator = list.iterator();
			while (iterator.hasNext()) {
				FileItem item = (FileItem)iterator.next();
				if (item.isFormField()) { // judge if it is not the file field
					String name = item.getFieldName(); // get the form's child name
					if (name.equals("course_id"))
						course_id = item.getString("utf-8");
					else if (name.equals("homework_id"))
						homework_id = item.getString("utf-8");
					else if (name.equals("homework_title"))
						homework_title = item.getString("utf-8");
					else if (name.equals("homework_description"))
						homework_description = item.getString("utf-8");
					else if (name.equals("ddl"))
						ddl = item.getString("utf-8");
				} else { // else it is the file field
					String fName = item.getName();  // get the file name
					int i = fName.lastIndexOf("\\");// fix the bug in ie
					fName = fName.substring(i + 1, fName.length());
					String filepath = request.getRealPath("/") + "detail_attach";
					File path = new File(filepath);
					if (!path.isDirectory()) {
						path.mkdir();
					}
					detail_attach_file = path + "/" + fName;
					try {
						if (fName != "") {
							item.write(new File(detail_attach_file));
						}
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			}
		} catch (FileUploadException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}
		// do whatever you want below
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		post_date = df.format(new Date());
		MySQLHelper.HomeworkPost homeworkPost = new MySQLHelper.HomeworkPost(course_id, homework_id,
				homework_title, homework_description, detail_attach_file, post_date, ddl);
		if(MySQLHelper.addHomework(homeworkPost)) {
			hintToUser = "成功发布作业";
		}
	}
%>
至此,完毕
Jsp实现form的file和text传递(multipart/form-data)的更多相关文章
- SPRING IN ACTION 第4版笔记-第六章RENDERING WEB VIEWS-002- Spring的JSP标签之form标签(<sf:input><sf:errors><sf:form>)
		
一. Spring offers two JSP tag libraries to help define the view of your Spring MVC web views. One tag ...
 - html <input>标签类型属性type(file、text、radio、hidden等)详细介绍
		
html <input>标签类型属性type(file.text.radio.hidden等)详细介绍 转载请注明:文章转载自:[169IT-最新最全的IT资讯] html <inp ...
 - jsp 回车代替tab 自动切换text焦点
		
方法一keyCode (IE11以后失效) <html> <head> <meta http-equiv="Content-Type" content ...
 - <jsp:include>和<%@include file=""%>的区别(简单了解)
		
简单了解 include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中,JSP引擎在判断JSP页面未被修改,否则视为已被修改.由于被包含的文件是在编译时才插入的 ...
 - form+iframe+file  页面无刷新上传文件并获取返回值
		
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
 - python读取文件报错:pandas.errors.ParserError: iterator should return strings, not bytes (did you open the file in text mode?)
		
python 读取csv文件报错问题 import csv with open('E:/Selenium2script/DDT模块/test.csv','rb') as f: readers = cs ...
 - Django---FORM组件.FORM组件的字段,FORM组件校验流程,FORM组件的全局和局部钩子,FORM和Model的组合
		
Django---FORM组件.FORM组件的字段,FORM组件校验流程,FORM组件的全局和局部钩子,FORM和Model的组合 一丶FORM的介绍 1.生成页面可用的HTML标签 2.对用户提交的 ...
 - 转:Warning -26490: File name in a multipart submit is missing or empty.解决方法
		
录制测试上传文件脚本,回放报Warning -26490: File name in a multipart submit is missing or empty. Using an empty fi ...
 - 如果没有<form>标签,也没有enctype="multipart/form-data"属性,怎么使用formData对象提交表单呢?如下方式
		
form标签的enctype属性 enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码. 默认地,表单数据会编码为 "application/x-www-form-urlen ...
 
随机推荐
- html5 搖一搖
			
<script> // 首先在页面上要监听运动传感事件 function init(){ if (window.DeviceMotionEvent) { // 移动浏览器支持运动传感事件 ...
 - Qt中QObject中的parent参数
			
今天写了一个小程序,验证了带参的构造函数中参数parent的作用. 在MainWindow中声明一个QDialog类型的指针,在MainWindow中对它进行初始化.我采用了两种初始化方式,一种是带参 ...
 - WP8——页面跳转方法
			
1.页面传值: this.NavigationService.Navigate(new Uri("/SecondPage.xaml?CustomerId=1234&Product ...
 - webGL 学习教程
			
====教程=================== webGL中文网:http://www.hewebgl.com/webGL API:https://developer.mozilla.org/en ...
 - git gc
			
git gc 有时候当你运行一些git命令(比如git pull)的时候,会有如下提示: 1 2 Auto packing the repository for optimum performance ...
 - Oracle多线程并行使用、关联与指定索引执行
			
nologging AS SELECT /*+parallel(4) leading(s a) use_hash(A) index(s IDX_CS_SERVICE_RECORD_MD2_04) */ ...
 - 在VMware中安装RHEL6.2(下)—— RHEL系统安装
			
一. 打开安装好的虚拟机,因为上一篇我们未设置任何RHEL的安装源,所以它会如下图提示: 二. 图上标识为两种更改光盘设置的方法,物理或虚拟光盘皆可. 1. 选择①: 2. 选择②,点击设置...: ...
 - jquery中选择ID以什么字符开头的匹配主要用于多个上传控件的时候,id无法使用,而且class不起作用的时候
			
$("[id^=remark]")选择ID以remark开头的所有数据进行匹配
 - 微信Api
			
//定义变量 HttpRequest Request; HttpResponse Response; HttpServerUtility Server; HttpContext Context; pr ...
 - [leetcode]_Pascal's Triangle
			
题目:题目本身不存在问题,生成Pascal三角. 注意: ArrayList的使用: 1.ArrayList申请二维数组. ArrayList<ArrayList<Integer>& ...