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)的更多相关文章

  1. 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 ...

  2. html <input>标签类型属性type(file、text、radio、hidden等)详细介绍

    html <input>标签类型属性type(file.text.radio.hidden等)详细介绍 转载请注明:文章转载自:[169IT-最新最全的IT资讯] html <inp ...

  3. jsp 回车代替tab 自动切换text焦点

    方法一keyCode (IE11以后失效) <html> <head> <meta http-equiv="Content-Type" content ...

  4. <jsp:include>和<%@include file=""%>的区别(简单了解)

    简单了解 include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中,JSP引擎在判断JSP页面未被修改,否则视为已被修改.由于被包含的文件是在编译时才插入的 ...

  5. form+iframe+file 页面无刷新上传文件并获取返回值

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  6. 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 ...

  7. Django---FORM组件.FORM组件的字段,FORM组件校验流程,FORM组件的全局和局部钩子,FORM和Model的组合

    Django---FORM组件.FORM组件的字段,FORM组件校验流程,FORM组件的全局和局部钩子,FORM和Model的组合 一丶FORM的介绍 1.生成页面可用的HTML标签 2.对用户提交的 ...

  8. 转: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 ...

  9. 如果没有<form>标签,也没有enctype="multipart/form-data"属性,怎么使用formData对象提交表单呢?如下方式

    form标签的enctype属性 enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码. 默认地,表单数据会编码为 "application/x-www-form-urlen ...

随机推荐

  1. MFC ComboBox的使用

    前言 Combo Box (组合框)控件很简单,可以节省空间.从用户角度来看,这个控件是由一个文本输入控件和一个下拉菜单组成的.用户可以从一个预先定义的列表里选择一个选项,同时也可以直接在文本框里面输 ...

  2. 服务器time_wait状态原因

    通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT状态 TIME_WAIT状态的时间是2倍的MSL(最大生存时间),在TIME_WAIT状态TCP连接实际上已经断掉,但是该插口又不 ...

  3. hadoop,hbase,pig安装

    注意端口,办公网只能访问8000-9000的端口 pig的一些lib文件版本 /home/map/hadoop/lib下一些98.5的lib没删除

  4. Recover deleted pictures in iOS 9

    A case about business secret. The suspect is an engineer in Hitec company, and compeitiors pay lots ...

  5. 调试时屏蔽JavaScript库代码 –Chrome DevTools Blackbox功能介绍

    代码难免会有Bug,每次我们在Chrome调试代码时,总是会进入各种各样的库代码(比如jQuery.Zepto),但实际上很多时候我们并不希望这样,要是能把这些库代码“拉黑”多好啊. 广大码农喜闻乐见 ...

  6. ADO.NET中的DataSet和DataAdapter

    DataSet和DataTable DataSet是一个数据集合,存储在内存中,算是一个临时的数据库. 个人觉得,不是太常用了,DataTable或者直接用List<model>存数据比这 ...

  7. MySQL中的数据类型

    文本 CHAR(*):最多255个字节的定长字符串,它的长度必须在创建时指定 VARCHAR(*):最多255个字节的可变长度字符串,它的长度必须在创建时指定 TEXT:最大长度为64K字符的变长文本 ...

  8. json传参应用

    json传参应用 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言.易于人阅 ...

  9. Silverlight中动画的性能浅析

    Silverlight中提供了StoryBoard实现动画,可是StoryBoard的性能实在不敢恭维,特别是动画很大的时候,计算机的CPU和内存的狂增,如此一来性能实在太差,在默认的动画效果中动画实 ...

  10. Qt5 Addin 出现问题模块计算机类型“x64”与目标计算机类型“X86”冲突

    Qt5 Addin 出现问题   怎样VS2013下安装Qt5的插件   http://jingyan.baidu.com/article/a948d65159d8890a2dcd2e84.html ...