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 = "成功发布作业";
        }
    }
%>

至此,完毕

转载于:https://www.cnblogs.com/wsine/p/5156360.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值