springMVC(十)——使用Ajax文件上傳和參數上傳


在springmvc中如何使用ajax即上傳文件又上傳參數呢?

本文參考於

https://blog.csdn.net/chengziaa123/article/details/81041371

這里在JS中使用到了FromData

springmvc.xml配置

 

<!-- 配置文件上傳解析器 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!--設置文件上傳的大小  字節  -->
        <property name="maxUploadSize" value="20971520"></property>
        <property name="defaultEncoding" value="UTF-8"></property>
        
    </bean>

 

前台代碼

<script type="text/javascript">
    function saveDraft(){
      //創建一個forData 
         var formData = new FormData($('#projectinfo')[0]);
        /* alert($("#province7").val()+$("#city7").val());
        var formData = new FormData($("#projectinfo"));
        formData.append("ps_file",$("#ps_file")[0].files[0]);
        formData.append("ps_name",$("#ps_name").val());
        
        formData.append("ps_goal",$("#ps_goal").val());
        formData.append("ps_money",$("#ps_money").val());
        formData.append("ps_days",$("#ps_days").val());
        fromData.append("province",$("#province7").val());        
        fromData.append("city",$("#city7").val()); */
        $.ajax({
            type : 'POST',
            url : '/Crowd-funding/projects/upload',
            data : formData,
            dataType:"json",
            async: false,  
            cache : false,
            processData : false,
            contentType : false,
        }).success(function(data) {            
            alert("上傳成功");
        }).error(function() {
            alert("上傳失敗");

        });
    }
</script>

 

 

 

 

后台代碼

@RequestMapping(value = "/upload", method = RequestMethod.POST)
    @ResponseBody
    public boolean upload(@RequestParam("ps_file") MultipartFile ps_file, HttpServletRequest request,
            String ps_name ,
            String ps_goal ,
            String ps_money,
            String ps_days,
            String province,
            String city) {
        System.out.println(province+city);
        
        Map<String, String> modelMap = new HashMap<>();
        boolean flay=true;
        if (!ps_file.isEmpty()) {
            //獲取文件上傳真實保存路徑
            String storePath = request.getServletContext().getRealPath("/images");
            Random r = new Random();
            String fileName = ps_file.getOriginalFilename();
            String[] split = fileName.split(".jpg");
            fileName = split[0] + r.nextInt(1000);
            fileName = fileName + ".jpg";
            System.out.println(fileName);
            File filePath = new File(storePath, fileName);
            System.out.println(filePath.getParentFile());
            if (!filePath.getParentFile().exists()) {
                filePath.getParentFile().mkdirs();// 如果目錄不存在,則創建目錄
            }
            try {
                ps_file.transferTo(new File(storePath + File.separator + fileName));// 把文件寫入目標文件地址
            } catch (Exception e) {
                e.printStackTrace();
                modelMap.put("back", "error");
                return flay=false;                
            }
            modelMap.put("back", "success"); 
        } else {
            modelMap.put("back", "error");
        }
        return flay;
 
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM