zoukankan      html  css  js  c++  java
  • Java-使用MultipartFile实现图片/文件上传

    示例:

       

    选择图片/文件 

     

    上传成功

    前端代码:

    <div class="form-item flexc">
        <span class="form-item-name">请上传商品图片</span>
        <div class="form-item-list flex">
            <div class="form-case-itemupload ">
                <input id="foodImgUrl" onchange="changeImg('foodImgUrl','food_img','uploadImgName')" type="file" name="" class="serve-type-btn1">
                <img id="food_img" class="uploadimg" src="" alt="">
                <!-- <i class="serve-type-img3"></i> -->
                <i id="uploadImgName" class="serve-type-text3 c9">上传图片<br></i>
            </div>
        </div>
    </div>
    
    <div class="form-item flexc">
        <span class="form-item-name">请上传商品相关资质资料</span>
        <div class="form-item-list flex">
            <div class="form-case-itemupload ">
                <input id="qualImgUrl" onchange="changeImg('qualImgUrl','food_file','uploadTextName')" type="file" name="" class="serve-type-btn1">
                <img id="food_file" class="uploadimg" src="" alt="">
                <!-- <i class="serve-type-img3"></i> -->
                <i id="uploadTextName" class="serve-type-text3 c9">上传凭证<br></i>
            </div>
        </div>
    </div>
    
    <div class="form-item ct">
        <button onclick="addFood()" class="form-btn">确定</button>
    </div>
    function changeImg(inputEl,imgEl,nameEl){
        var food_img_file = $("#"+inputEl)[0].files[0];
        var imgUrl = getImgFileURL(food_img_file);
        var fileName = food_img_file.name;
        $("#"+imgEl).attr("src",imgUrl);
        $("#"+nameEl).html(fileName);
    }
    
    //获取图片文件的路径
    function getImgFileURL(file) {
    	var url = null ;
    	if (window.createObjectURL!=undefined) { // basic
    		url = window.createObjectURL(file) ;
    	} else if (window.URL!=undefined) { // mozilla(firefox)
    		url = window.URL.createObjectURL(file) ;
    	} else if (window.webkitURL!=undefined) { // webkit or chrome
    		url = window.webkitURL.createObjectURL(file) ;
    	}
    	return url ;
    }
    
    function addFood(){
        var foodImgFile = $('#foodImgUrl')[0].files[0];  
        uploadFile(foodImgFile);
        var foodTextFile = $('#qualImgUrl')[0].files[0];  
        uploadFile(foodTextFile);
    }
    
    function uploadFile(file){
        var formData = new FormData();  
        formData.append("file_data", file);  
        formData.append("type", "1");  
        $.ajax({  
            url: url,
            type: 'POST',  
            cache: false,  
            data: formData,  
            processData: false,  
            contentType: false,  
            success: function (data) {  
            },  
            error: function (err) {  
            }  
        });
    }

    Java后台:

    @PostMapping("/upload")
    @ResponseBody
    public Map<String, Object> upload(@RequestParam("file_data") MultipartFile file_data, @RequestParam("type") String type) {
        Map<String, Object> map = new HashMap<>();
        if (file_data.isEmpty()) {
            map.put("code", "ok");
        }
        // 获取文件名
        String fileName = file_data.getOriginalFilename();
        System.out.println("上传的文件名为:" + fileName);
        // 获取文件的后缀名
        String suffixName = fileName.substring(fileName.lastIndexOf("."));
        System.out.println("上传的后缀名为:" + suffixName);
        // 文件上传后的路径
        String filePath = "d:/upload/";
    
        File dest = new File(filePath + fileName);
        // 检测是否存在目录
        if (!dest.getParentFile().exists()) {
            dest.getParentFile().mkdirs();
        }
        try {
            file_data.transferTo(dest);
            map.put("code", "ok");
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return map;
    }

    有兴趣的朋友可以加我的qq群交流学习,群里有更多源码,学习资料

    QQ群:741909960     

    点我进群

  • 相关阅读:
    洛谷 P2986 [USACO10MAR]伟大的奶牛聚集Great Cow Gat…(树规)
    STREAMING #5 题解 3.高位网络
    冲刺NOIP2015提高组复赛模拟试题(五) 3.破坏基地
    冲刺NOIP2015提高组复赛模拟试题(五)2.道路修建
    冲刺NOIP2015提高组复赛模拟试题(五)1.数学作业
    洛谷P1186 玛丽卡 spfa+删边
    清北学堂 day6 花
    清北学堂 day6 兔子
    C++ STL 全排列函数
    flash分区的意义
  • 原文地址:https://www.cnblogs.com/yongtaochang/p/14891872.html
Copyright © 2011-2022 走看看