zoukankan      html  css  js  c++  java
  • SmartUpload实现文件上传时file和表单文本同时提交的问题

    JSP页面:

    <%@ page language="java" import="java.util.*" 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>My JSP 'index.jsp' starting page</title>
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
      </head>
      
      <body>
        <form action="UploadServlet" enctype="multipart/form-data" method="post">
                用户姓名:<input type="text" name="userName" /><br/>
                上传头像:<input type="file" name="userPhoto" /><br/>
                <input type="submit" value="提交">
        </form>
      </body>
    </html>

    Servlet代码:

    package com.gy.servlet;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.jspsmart.upload.File;
    import com.jspsmart.upload.SmartUpload;
    
    public class UploadServlet extends HttpServlet {
    
        /**
         * Constructor of the object.
         */
        public UploadServlet() {
            super();
        }
    
        /**
         * Destruction of the servlet. <br>
         */
        public void destroy() {
            super.destroy(); // Just puts "destroy" string in log
            // Put your code here
        }
    
        /**
         * The doGet method of the servlet. <br>
         *
         * This method is called when a form has its tag value method equals to get.
         * 
         * @param request the request send by the client to the server
         * @param response the response send by the server to the client
         * @throws ServletException if an error occurred
         * @throws IOException if an error occurred
         */
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            doPost(request, response);
        }
    
        /**
         * The doPost method of the servlet. <br>
         *
         * This method is called when a form has its tag value method equals to post.
         * 
         * @param request the request send by the client to the server
         * @param response the response send by the server to the client
         * @throws ServletException if an error occurred
         * @throws IOException if an error occurred
         */
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            response.setContentType("text/html");
            request.setCharacterEncoding("utf-8");
            response.setCharacterEncoding("utf-8");
            PrintWriter out = response.getWriter();
            try{
                SmartUpload su = new SmartUpload();//创建SmartUpload对象
                su.setCharset("utf-8");//设置编码
                su.initialize(this.config,request,response);//初始化设置             
                su.setAllowedFilesList("gif,bmp,jpg");//设置允许上传的文件扩展名
                su.setMaxFileSize(2*1024*1024);//设置单个文件允许最大长度(单位:字节)
                su.setTotalMaxFileSize(10*1024*1024);//设置上传文件的总大小(单位:字节)
                su.upload();//将文件数据上传
                //注意:使用SmartUpload对象获取request这句代码要放在upload()方法后面,否则拿不到数据
                out.print(su.getRequest().getParameter("userName"));
                File f = su.getFiles().getFile(0);//获取第一个上传文件
                String savePath = "upload\";
                savePath += f.getFileName();//组装存储路径
                f.saveAs(savePath);//将文件保存到指定位置
                out.println("上传成功!");
            }catch(Exception ex){
                ex.printStackTrace();
                out.println("上传异常:"+ex.getMessage());
            }
            out.flush();
            out.close();
        }
    
        private ServletConfig config;
        /**
         * Initialization of the servlet. <br>
         *
         * @throws ServletException if an error occurs
         */
        public void init(ServletConfig config) throws ServletException {
            // Put your code here
            this.config = config;
        }
    
    }
  • 相关阅读:
    POJ 1659 Frogs' Neighborhood
    zoj 2913 Bus Pass(BFS)
    ZOJ 1008 Gnome Tetravex(DFS)
    POJ 1562 Oil Deposits (DFS)
    zoj 2165 Red and Black (DFs)poj 1979
    hdu 3954 Level up
    sgu 249 Matrix
    hdu 4417 Super Mario
    SPOJ (BNUOJ) LCM Sum
    hdu 2665 Kth number 划分树
  • 原文地址:https://www.cnblogs.com/tianguook/p/6231423.html
Copyright © 2011-2022 走看看