首页 > 代码库 > Spring MVC多图片上传,多值上传

Spring MVC多图片上传,多值上传

servlet-context.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
       http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">


    <context:component-scan base-package="com" />


    <!--
        <context:property-placeholder 
        location="/WEB-INF/spring/*.properties"
        system-properties-mode="OVERRIDE" />
    -->
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/longinghou/*" />
            <bean class="com.sino.interceptor.longingInterceptor" />
        </mvc:interceptor>
    </mvc:interceptors>
    <mvc:annotation-driven />
    <mvc:default-servlet-handler />
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />
    
    <util:properties id="controller" location="/WEB-INF/spring/controller.properties" />
    <bean id="multipartResolver"  
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
    <!-- 设置上传文件的最大尺寸为1MB -->  
    <property name="maxUploadSize">  
        <value>1048576</value>  
    </property>  
</bean>  
</beans>







HTML:


<%-- 
    Document   : longing
    Created on : 2014-7-28, 14:53:08
    Author     : Administrator
--%>


<%@page import="java.util.Date"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>
<%--<%@page contentType="text/html" pageEncoding="UTF-8"%>--%>
<%
    String path = request.getContextPath();
%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
        <script type="text/javascript" src=http://www.mamicode.com/"/js/jq.min.js"></script>
        <script type="text/javascript">
            var chenggongyu="${chenggongyu}";
            if(chenggongyu!=""){
                alert("生成成功");
            }
            function addone() {
                var ss = "<div>标题:<input type=‘text‘ name=‘title‘><br>描述:<input type=‘text‘ name=‘miaoshu‘><br>URL:<input type=‘text‘ name=‘url‘><br> image:<input type=‘file‘ name=‘urlName‘><br><br><br></div>";
//                alert($("#xuanze").html())
//                $("#xuanze").html+ss;
                
                //$("#xuanze").html($("#xuanze").html() + ss);
                $("#xuanze").append(ss);
//                document.getElementById("xuanze").innerHTML+=ss;
            }


            function submitss() {
                var titlearr = new Array();
                var miaoshuarr = new Array();
                var urlarr = new Array();
                $("input[name=‘title‘]").each(
                        function() {
                            titlearr.push($(this).val());
                        }


                );
                $("input[name=‘miaoshu‘]").each(
                        function() {
                            miaoshuarr.push($(this).val());
                        }


                );
                $("input[name=‘url‘]").each(
                        function() {
                            urlarr.push($(this).val());
                        }


                );
                $("#titlearr").val(titlearr);
                $("#miaoshuarr").val(miaoshuarr);
                $("#urlarr").val(urlarr);
                return true;
            }
        </script>
    </head>
    <body>
        <form method="post" id="form1" action="<%=path%>/longinghou/succesfile" enctype="multipart/form-data" onsubmit="return submitss()">
            欢迎您:${username}
            <div id="xuanze">
                    第一行内容(头标题)<br>
                    标题:<input type="text" name="title"><br>
                    描述:<input type="text" name="miaoshu"><br>
                    URL:<input type="text" name="url"><br>
                    image:<input type="file" name="urlName"><br><br><br>
            </div>
            <input type="submit" value=http://www.mamicode.com/"提交" >        
            <input type="button" value=http://www.mamicode.com/"再来一行" onclick="addone()">
            <input type="hidden" id="titlearr" name="titlearr"/>
            <input type="hidden" id="miaoshuarr" name="miaoshuarr"/>
            <input type="hidden" id="urlarr" name="urlarr"/>
        </form>


        <!--          //action里的html是后缀名,不是HTML文件,用于spring对请求进行拦截判断
                <form method="post" action="<%=path%>/longinghou/succesfile" enctype="multipart/form-data">
                       <input type="text" name="name" />
                    <input type="file" name="urlName" />
                    <input type="file" name="urlName" />
                    <input type="submit" />
                </form>-->
    </body>
</html>




Controller:


    @RequestMapping(value = http://www.mamicode.com/"/succesfile")
    public String handleRequest(HttpServletRequest request,
            HttpServletResponse response, @RequestParam MultipartFile[] urlName, @RequestParam String[] titlearr, @RequestParam String[] miaoshuarr, @RequestParam String[] urlarr) throws Exception {


//        for (int i = 0; i < urlName.length; i++) {
//            String fileName = urlName[i].getOriginalFilename();//获取上传第一个图片的名字  
//            System.out.println(urlName[i].getOriginalFilename());
//        }
//        for (int i = 0; i < titlearr.length; i++) {
//            String fileName = titlearr[i];//获取上传第一个图片的名字  
//            System.out.println(titlearr[i]);
//        }
//        for (int i = 0; i < miaoshuarr.length; i++) {
//            String fileName = miaoshuarr[i];//获取上传第一个图片的名字  
//            System.out.println(miaoshuarr[i]);
//        }
//        for (int i = 0; i < urlarr.length; i++) {
//            String fileName = urlarr[i];//获取上传第一个图片的名字  
//            System.out.println(urlarr[i]);
//        }
        String neirong = "";
        try {
            String encoding = "GBK";
            File file = new File(feile + "/temp.txt");
            if (file.isFile() && file.exists()) { //判断文件是否存在
                InputStreamReader read = new InputStreamReader(
                        new FileInputStream(file), encoding);//考虑到编码格式
                BufferedReader bufferedReader = new BufferedReader(read);
                String lineTxt = null;
                while ((lineTxt = bufferedReader.readLine()) != null) {
                    neirong += lineTxt;
                }
                read.close();
            } else {
                System.out.println("找不到指定的文件");
            }
        } catch (Exception e) {
            System.out.println("读取文件内容出错");
            e.printStackTrace();
        }


        String lineirong = "";
        for (int i = 0; i < urlName.length; i++) {
            String neirongtihuan = tihuanneirong;
            String title = titlearr[i];
            String miaoshu = miaoshuarr[i];
            String url = urlarr[i];
            String img = urlName[i].getOriginalFilename();
            if (i == 0) {
                neirong = neirong.replace("{title1}", title);
                neirong = neirong.replace("{miaoshu1}", miaoshu);
                neirong = neirong.replace("{url1}", url);
                neirong = neirong.replace("{img1}", img);
            } else {
                neirongtihuan = neirongtihuan.replace("{title}", title);
                neirongtihuan = neirongtihuan.replace("{miaoshu}", miaoshu);
                neirongtihuan = neirongtihuan.replace("{url}", url);
                neirongtihuan = neirongtihuan.replace("{img}", img);
                lineirong += neirongtihuan;
            }
        }
        neirong = neirong.replace("{duogeli}", lineirong);


        SimpleDateFormat df = new SimpleDateFormat("MMdd");//设置日期格式
        String wenjianj = df.format(new Date());
        File outfile = new File(feile + "/" + wenjianj);
        if (!outfile.exists()) {
            outfile.mkdirs();
        } else {
            fu.delFolder(feile + "/" + wenjianj);
            outfile.mkdirs();
        }
        File htmlfile = new File(feile + "/" + wenjianj + "/hq.html");
        htmlfile.createNewFile();
        try {
            FileOutputStream writerStream = new FileOutputStream(feile + "/" + wenjianj + "/hq.html"); 
            BufferedWriter output = new BufferedWriter(new OutputStreamWriter(writerStream, "UTF-8")); //写入流
            output.write(neirong); //s1为写入的字符串
            output.flush();
            output.close();
        } catch (Exception e) {
            log.info("html文件写入失败");
        }
        File imgfile = new File(feile + "/" + wenjianj + "/img");
        imgfile.mkdirs();


        //上传图片
        for (int i = 0; i < urlName.length; i++) {
            MultipartFile myfile = urlName[i];
            if (myfile.isEmpty()) {
                log.info("文件未上传");
            } else {
                String path = feile + "/" + wenjianj + "/img";


                File file = new File(path);
                if (!file.exists()) {
                    file.mkdirs();
                }
                // 这里不必处理IO流关闭的问题,因为FileUtils.copyInputStreamToFile()方法内部会自动把用到的IO流关掉,我是看它的源码才知道的  
                // FileUtils.copyInputStreamToFile(myfile.getInputStream(),  
                // new File(path, myfile.getOriginalFilename()));  
                FileUtils.writeByteArrayToFile(new File(path, urlName[i].getOriginalFilename()),
                        myfile.getBytes());
            }


        }
        request.setAttribute("chenggongyu", "1");
        return "longinghou";
    }




完整项目名称

neirongfabu


需要完整项目的请留言