zoukankan      html  css  js  c++  java
  • 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 = "成功发布作业";
    		}
    	}
    %>
    

    至此,完毕

  • 相关阅读:
    《超级迷宫》需求规格说明
    超级迷宫冲刺个人计划安排
    审评(HelloWorld团队)
    C语言中的++与*
    a、b交换
    微服务架构浅析及实践心得
    Servlet版本冲突引起的Error
    并发编程:一个100%会发生死锁的程序
    单元测试与Mockito
    Java基础:HashMap假死锁问题的测试、分析和总结
  • 原文地址:https://www.cnblogs.com/wsine/p/5156360.html
Copyright © 2011-2022 走看看