ajax提交formData iframe springmvc 上传文件

1.引入讲个jar包 springmvc设置

commons-fileupload-1.3.3.jar

commons-io-2.5.jar

2.springmvc配置

<!-- 定义文件解释器 -->
	<bean id="multipartResolver"
		class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<!-- 设置默认编码 -->
		<property name="defaultEncoding" value="utf-8"></property>
		<!-- 文件大小最大值 -->
		<property name="maxUploadSize" value="10485760000" />
		<!-- 内存中的最大值 -->
		<property name="maxInMemorySize" value="40960" />
	</bean>

3.HTML 对file做了css美化

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>新增地名标志</title>
    <link rel="stylesheet" href="css/bootstrap.min.css"/>
    <link rel="stylesheet" href="css/bootstrap-datetimepicker.css" type="text/css"/>
    <script src="js/jquery-1.10.2.min.js" type="text/javascript"></script>
    <script src="js/bootstrap.min.js" type="text/javascript"></script>
    <script src="js/bootstrap-datetimepicker.js"></script>
    <script src="js/bootstrap-datetimepicker.zh-CN.js"></script>

    <script src="js/table.js" type="text/javascript"></script>
    <link rel="stylesheet" type="text/css" href="css/style.css">
    <script src="../../js/jquery.tips.js"></script>
    <script src="js/hint.js"></script>
    <style>
    .readonly{
    background-color: rgb(242, 242, 242);
    }

    /*a  upload */
.a-upload {
    padding: 4px 10px;
    height: 36px;
    line-height: 20px;
    position: relative;
    cursor: pointer;
    color: #888;
    background: #fafafa;
    border: 1px solid #ddd;
    border-radius: 4px;
    overflow: hidden;
    display: inline-block;
    *display: inline;
    *zoom: 1
}

.a-upload  input {
    position: absolute;
    font-size: 100px;
    right: 0;
    top: 0;
    opacity: 0;
    filter: alpha(opacity=0);
    cursor: pointer
}

.a-upload:hover {
    color: #444;
    background: #eee;
    border-color: #ccc;
    text-decoration: none
}
.close-upimg:hover {
    background-color: blue;
}
    
    </style>

</head>
<body>
    <form id="dmbz">
        <table class="table table-bordered table-hover">
            <tr>
                <td class="danyuange">标志文件上传</td>
                <td colspan="7">
                    <a href="javascript:;" id="a-upload"class="a-upload" style="float:left;">
                        <input type="file" id='file21' name="zhaopianwenjianming" onchange="showPreview(this)">点击这里上传文件
                    </a> 
                    <div class=fileImgDel style="height:36px;float:left;line-height: 36px;">
                        <span  class='show' name="show" style='float:left;height:36px;margin-left: 10px;'></span>
                        <img src='../../img/del.png' class='close-upimg' id='close-upimg' onclick="delFile()" style='float:left;position:relative;top:10px;'>
                    </div>
                </td>
            </tr>
          
        </table>
    </form>

</body>
</html>
 
<script type="text/javascript">
function showPreview(source) {
    $(".fileImgDel").empty();
    $(".fileImgDel").append("<span  class='show' name='show' style='float:left;height:36px;margin-left: 10px;'></span>"
    +"<img src='../../img/del.png' class='close-upimg' id='close-upimg' onclick="
    +"delFile()"
    +" style='float:left;position:relative;top:10px;'>");
    var arrs = $(source).val().split('\\'); 
    var filename=arrs[arrs.length-1]; 
    $(".show").text(filename);
}
function delFile(){
    $(".fileImgDel").empty();
    document.getElementById("a-upload").innerHTML="<input type='file' id='file21' name='zhaopianwenjianming' onchange='showPreview(this)'>点击这里上传文件";
     $(".fileImgDel").append("<span  class='show' name='show' style='float:left;height:36px;margin-left: 10px;'></span>"
    +"<img src='../../img/del.png' class='close-upimg' id='close-upimg' onclick="
    +"delFile()"
    +" style='float:left;position:relative;top:10px;'>");
    //var biaozhidaima=$("#biaozhidaima").val();
}

</script>

4.ajax提交

function placeMark_Save(){
    var ss2,fd;
    if(!!window.ActiveXObject || "ActiveXObject" in window){//判断浏览器是否为IE11
        //alert('是IE!')
        ss2 = $("#dmbz", window.frames['iframe_bz'].document);
    }else{
        //alert('非IE!')
        ss2 = $("#dmbz", window.frames['iframe_bz'].contentDocument);
    }
    //-----------------------------------------------------formdata
    if (action == "add") {
        fd = new FormData(ss2[0]);
        fd.append("id","0");//新增formdata元素
        fd.append("uuid","");
        fd.append("diminguuid",dmInfo.guid);
        fd.append("action","add");
    }else{
        fd = new FormData(ss2[0]);
        fd.append("action","edit");
        fd.append("uuid",uuid_biaozhi);
    }
//ajax提交
     $.ajax({
         url: 'placeName/biaoZhiSave.do',
         type: 'POST',
         datatype: 'json',
         data: fd,
         cache:false,
         traditional: true,
         contentType: false,
         processData: false,
         success : function(data) {
                if (data) {
                    placeMarkTable_Close();// 成功后才能关闭对话框
                    jQuery(placeMark_Table).jqGrid('setGridParam', {
                                url : 'placeName/biaozhiInit.do'
                            }).trigger('reloadGrid');
                } else {
                    $("#markBtn").tips({
                                side : 1,
                                msg : "数据保存失败!",
                                bg : '#FF5080',
                                time : 5
                            });
                }
            }
            
        });
}

5.Controller.java文件

@RequestMapping(value = "/biaoZhiSave")
        public void biaoZhiSave(@RequestParam(value = "zhaopianwenjianming", required = false)MultipartFile zhaopianwenjianming,
                HttpServletRequest request,HttpServletResponse response) throws IllegalStateException, IOException{
            String newUuid = "";
            String action = request.getParameter("action");// 操作符
            String fileName=request.getParameter("biaozhidaima");//标志代码---作为文件名

            JSONObject jsonData=new JSONObject();//将传入的数据转为json对象
            Map<String,String[]> paramMap = request.getParameterMap();
            for(String name : paramMap.keySet()) {
            String[] values = paramMap.get(name);
            jsonData.put(name, StringUtils.join(values));
            }
//保存图片
            if (!zhaopianwenjianming.isEmpty()) {//如果有图片
                //保存到服务器WEB-INF\\upload目录下
                String realPath = request.getSession().getServletContext().getRealPath("/WEB-INF/upload");   
                String ext = FilenameUtils.getExtension(zhaopianwenjianming.getOriginalFilename());//文件后缀名
                zhaopianwenjianming.transferTo(new File(realPath+"\\"+ fileName + "." + ext));
                jsonData.put("zhaopianwenjianming",fileName + "." + ext);

                //保存文件到D:\\upload目录下
               /* String ext = FilenameUtils.getExtension(zhaopianwenjianming.getOriginalFilename());//文件后缀名
                zhaopianwenjianming.transferTo(new File("D:\\upload\\" + fileName + "." + ext));
                jsonData.put("zhaopianwenjianming",fileName + "." + ext);*/
            }

        }

猜你喜欢

转载自blog.csdn.net/qq_29009973/article/details/80448577