鍍金池/ 問答/Java  HTML/ 用的layui的上傳控件,為什么傳到后臺之后是null?。?/span>

用的layui的上傳控件,為什么傳到后臺之后是null?。?/h1>

html

<div class="layui-upload biangeng_3_1">
                <button type="button" class="layui-btn" id="yingyezhizhao"><i class="layui-icon">&#xe67c;</i>營業(yè)執(zhí)照</button>
                <div class="layui-upload-list">
                    <img class="layui-upload-img" id="yingyezhizhao_preview">
                   <!-- <p id="demoText"></p>-->
                </div>
            </div>

js

layui.use('upload', function(){
    var upload = layui.upload;

    //執(zhí)行實例
    var uploadInst = upload.render({
        elem: '#yingyezhizhao' //綁定元素
        ,url: '../app/upload/changeImg' //上傳接口

        ,done: function(res){
            //上傳完畢回調(diào)
            $('#yingyezhizhao_preview').attr('src','../'+ data.data);
            layer.msg('上傳成功!');
        }
        ,error: function(){
            layer.msg('上傳失敗');
        }
    });
});

圖片描述

回答
編輯回答
來守候

因為你前端提交的參數(shù)名(file)與后臺接收的參數(shù)名(imageFile)不一致,導(dǎo)致后臺接收不到數(shù)據(jù)

我從layui示例中上傳文件

clipboard.png

使用chrome瀏覽器,打開開發(fā)者工具(win F12,蘋果 option + command + i),點擊上傳文件,查看它發(fā)送的請求,如下圖紅圈,發(fā)現(xiàn)參數(shù)名為file

clipboard.png

所以如果不想改前端,只改后臺,可以將后臺接收參數(shù)名改成file。或者修改前端提交的參數(shù)名,從改插件的提供的參數(shù)選項上可以修改,如下圖紅圈部分,前端只需添加一個字段field:imageFile即可

clipboard.png

2018年8月6日 03:21
編輯回答
溫衫

如果你確定前端上傳沒有問題。

    @PostMapping
    public Object uploadImgFile(@RequestPart("img") MultipartFile img) {
        return aliyunOssManagerI.uploadFileToAliyunOss(img);
    }

看你spring 版本。

@RequestPart 或者 @RequestParam
2018年2月22日 10:59
編輯回答
艷骨

把你后臺接口的參數(shù)名imageFile修改為file ,或者在參數(shù)前面加上 @RequestParam(value="file")

2017年4月30日 15:39