简单使用smartupload上传文件

 

使用jsp和serlvet来实现最简单的上传。

1、页面index.jsp

 

<%@ page language="java" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">  
    <title>index.jsp</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
  </head>
  <body>
    <form action="upload"  method="post" enctype="multipart/form-data">
      <br>
      姓名:<input type="text" name="uname"/>
      <br>
      上传文件:<input type="file" name="pic"/>
      <br>
      <input type="submit" value="提交"></input>
    </form>
  </body>
</html>

 

2、action跳转到了upload的servlet,所以要web.xml里面配置,web.xml:

 

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<servlet>
		<servlet-name>uploadAction</servlet-name>
		<servlet-class>com.pop.action.SmartuploadAction</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>uploadAction</servlet-name>
		<url-pattern>/upload/*</url-pattern>
	</servlet-mapping>
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>
 

3、映射到的action文件,SmartuploadAction.java:

 

 

package com.pop.action;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspFactory;
import javax.servlet.jsp.PageContext;

import com.soft4j.httpupload4j.Request;
import com.soft4j.httpupload4j.SmartUpload;
import com.soft4j.httpupload4j.SmartUploadException;

public class SmartuploadAction extends HttpServlet {
	private static final long serialVersionUID = -8610555375032925108L;
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		req.setCharacterEncoding("utf-8");
		resp.setCharacterEncoding("utf-8");
		SmartUpload su = new SmartUpload();
		// 由于multipart/form-data的传输原因导致req不能使用,所以使用smartupload产生的request
		Request reqest = su.getRequest();
		// 获得pageContext对象
		PageContext pageContext = JspFactory.getDefaultFactory()
				.getPageContext(this, req, resp, null, true, 8192, true);
		su.initialize(pageContext);
		try {
			su.upload();
			// 上传到本项目的upload目录
			su.save("upload");
		} catch (SmartUploadException e) {
			e.printStackTrace();
		}
		// 使用smartupload产生的reqest对象来获得页面传递的参数
		String uname = reqest.getParameter("uname");
		System.out.println(uname);
	}
}

 

 

 

最后说明:使用的组件包为smartupload.zip。


 

 

你可能感兴趣的:(jsp,Web,xml,javaee,servlet)