zoukankan      html  css  js  c++  java
  • 解决 jquery.form.js和springMVC上传 MultipartFile取不到信息

    前段页面:

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <!DOCTYPE html >
    <html>
    <head>
        <title>个人信息</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta content="width=device-width; initial-scale=1.0; minimum-scale=1.0; maximum-scale=1.0;user-scalable=no" name="viewport">
        <meta content="640" name="MobileOptimized">
        <meta content="YES" name="apple-touch-fullscreen">
        <meta content="yes" name="apple-mobile-web-app-capable">
        <link href="${ROOT_PATH }content/css/staff/employee.css" type="text/css" rel="stylesheet"/>
        <link href="${ROOT_PATH }content/css/staff/font-awesome.min.css" type="text/css" rel="stylesheet"/>
           <script src="${ROOT_PATH }content/scripts/jquery-1.10.1.min.js"></script>
           <script src="${ROOT_PATH }content/scripts/jquery.form.js"></script>
           <script src="${ROOT_PATH }content/scripts/staff/staff.js"></script>
    </head>
    <body>
        <form action="${ROOT_PATH }Staff/index/upload" name="stafform" id="stafform" method="post">
            <c:set var="head" value="${ROOT_PATH }content/images/staff/photo.png"/>
            <c:if test="${!empty staff.imageurl.value }">
                <c:set var="head" value="${staff.imageurl.value }"/>    
            </c:if>
            <c:set var="headx" value="${ROOT_PATH }content/images/staff/img1.jpg"/>
            <c:if test="${!empty staff.imageurlb.value }">
                <c:set var="headx" value="${staff.imageurlb.value }"/>    
            </c:if>
            <div class="avatar"><a class="photo" href="#"><img id="imghead" src="${head}"/><input id="imagev" name="image" onchange="previewImage(this)" type="file" class="photo_put" value="" /></a><input type="text" name="hm" value="${staff.staffename.value}"/></div>
            <div class="per_infor_box">
                <ul class="per_infor">
                    <li><label>门 店</label><input type="text" value="${staff.commpanyName.value}" disabled="disabled" /></li>
                    <li><label>职 位</label><input type="text" value="${staff.position.value }" disabled="disabled"/></li>
                    <li><label>姓 名</label><input type="text" value="${staff.staffname.value }" disabled="disabled"/></li>
                    <li><label>手 机</label><input type="text" value="${staff.mobilephone.value }" disabled="disabled"/></li>
                    <li><label>工 龄</label><input type="text" value="${staff.workTime.value }" disabled="disabled"/></li>
                    <li><label>身份证</label><input type="text" value="${staff.pccid.value }" disabled="disabled"/></li>
                    <li><label>自我介绍</label><textarea disabled="disabled">${staff.description.value }</textarea></li>
                </ul>
            </div>
            <div class="bottom infor_bot">       
                <input class="present" type="submit" value="提 交"/>
            </div>
        </form>
    </body>
    
    <script type="text/javascript">
        $(function () {
            $('#stafform').submit(function () {
                var options = {
                    dataType: 'json',
                    success: function (txt) {
                        if (txt.isok) {
                            alert("保存成功");
                            location.reload(true);
                            return false;
                        } else {
                            alert(txt.data);
                            return false;
                        }
                    }
                };
                $('#stafform').ajaxSubmit(options);
                return false;
            });
        });
    </script>
    </html>

    后台代码:

    package amani.wechat.platform.controller;
    
    import java.io.IOException;
    import java.util.Date;
    import java.util.List;
    import java.util.Map;
    
    import javax.annotation.Resource;
    import javax.servlet.http.HttpSession;
    import javax.xml.bind.JAXBElement;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.multipart.MultipartFile;
    
    import amani.wechat.platform.controller.model.Result;
    import amani.wechat.platform.services.ICommonService;
    import amani.wechat.platform.utils.CompressPic;
    import amani.wechat.platform.webserviceClient.StaffHairDesignerInfo;
    import amani.wechat.platform.webserviceClient.Staffinfo;
    import amani.wechat.platform.webserviceClient.imageService.ImageCloudService;
    import amani.wechat.platform.webserviceClient.imageService.ImageCloudServicePortType;
    
    import com.google.gson.Gson;
    import com.google.gson.reflect.TypeToken;
    
    @Controller
    @RequestMapping("/Staff")
    public class StaffController {
        
        @Resource(name="CommonService")
        ICommonService commonService ;
        
        static ImageCloudServicePortType aImageCloudServicePortType;
        
        static{
            ImageCloudService  aImageCloudService = new ImageCloudService();
            aImageCloudServicePortType = aImageCloudService.getImageCloudServiceHttpPort();
        }
       /**
         * 更新头像和昵称
         * @param image
         * @param hm
         * @param session
         * @return
         * @throws IOException 
         */
        @RequestMapping(value = "/index/upload", method = RequestMethod.POST)
        @ResponseBody
        public Result indexUpload(@RequestParam(value = "file", required = false)MultipartFile image, String hm, HttpSession session)  {
            String imagePath = "";
            String imagebPath = "";
            Result res = new Result();
            String openid = session.getAttribute("openid")+"";
            res.setIsok(true);
            if(image!=null){
                String fileName = new Date().getTime() + "_" + image.getOriginalFilename();
                String key = fileName;
                try {
                    byte[] img = CompressPic.compressPic(image.getInputStream(), 300, 300);
                    imagePath = aImageCloudServicePortType.uploadFile(img, "amani", key);
                    Gson gson = new Gson();
                    Map<String, String> map = gson.fromJson(imagePath, new TypeToken<Map<String, String>>(){}.getType());
                    imagePath = map.get("url");
                } catch (Exception e) {
                    e.printStackTrace();
                } 
            }
            commonService.updateStaffInfo(openid, hm, imagePath, imagebPath);
            
            return res;
        }
     }

    改成

    @RequestParam(value = "file",就ok了
  • 相关阅读:
    Azure开发者任务之二:Cloud Service项目添加到ASP.Net Web中
    Azure开发者任务之一:解决Azure Storage Emulator初始化失败
    Configuring a Windows Azure Project
    How to manage the certificates in the PC
    在此声明我的博客已经搬到CSDN 中了
    http://www.cnblogs.com/Sniper-quay/archive/2011/06/22/2086636.html
    杂乱的UDPsocket
    socket下server端支持多客户端并发访问简单实现
    Qt 的udpSocket通信
    正则表达式
  • 原文地址:https://www.cnblogs.com/sprinng/p/4903926.html
Copyright © 2011-2022 走看看