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;
        }
    
    }
  • 相关阅读:
    rgb随机颜色函数
    mapshaper转geojson
    postgis
    Draw
    ol 聚类ol.source.Cluster的使用
    ol ---- overlay autoPan的使用
    多层数据注入同一个图层源时,要批量删除某一种要素
    js遍历数组,并从数组中删除元素
    echarts加载geojson
    centos65编译安装lamp和lnmp
  • 原文地址:https://www.cnblogs.com/tianguook/p/6231423.html
Copyright © 2011-2022 走看看