求助!ajax上传文件后台用MultipartFile接收报空指针

9_winter 2020-02-05 01:30:40
//图片上传
function chageImg() {
$.ajaxFileUpload({
url : "${root}/qiniu/upload",//用于文件上传的服务器端请求地址
secureuri : false,//一般设置为false
fileElementId : "uploadImg",//文件上传空间的id属性 <input type="file" id="pic" name="pic" />
dataType : 'json',//返回值类型 一般设置为json
success : function(data, status){//服务器成功响应处理函数
alert(data.resultString);//文件上传的路径 url
document.getElementById("lbimg").src=data.resultString;
$("#logo").val(data.resultString);
},
error: function (data, status, e){//服务器响应失败处理函数
alert(status);
alert(e);
}
});
}



<div class="col-sm-9">
<input type="file" name="pic" id="uploadImg" style="display: none;" onchange="chageImg();">
<img id="lbimg" class="uploadImg" src="${img }/webuploader.png" onclick="uploadImg.click();" />
<span class="help-block m-b-none">尺寸为:80*80像素,jpg/png格式</span>
<div><font color="red" id="erro"></font></div>
<input type="hidden" id="logo" name="logo"/>
</div>






@Controller
public class UploadController {

@RequestMapping("qiniu/upload")
@ResponseBody
public Result upFile(MultipartFile file, HttpServletRequest request) {
//获取图片上传的名称,比如car.jpg
System.out.println("++++++++++++++++++++++++++++++"+file);
String orinalName = file.getOriginalFilename();
//获取图片上传的扩展名.jpg
String suffixName = orinalName.substring(orinalName.indexOf("."));
Result rs = new Result();
//文件为空响应为:上传图片为空
if (file.isEmpty()) {
rs.setCode(500);
rs.setResultBoolean(false);
rs.setResultMessage("上传图片为空");
return rs;
}

try {
byte[] bytes = file.getBytes();
//使用uuid替代原来的名称,避免上传的文件同名时无法区分sdgdfg-fgdfgdf-gfhf.jpg
String imageName = UUID.randomUUID().toString()+suffixName;
//使用七牛工具类上传图片
QiniuCloudUtil qiniuUtil = new QiniuCloudUtil();
//使用base64方式上传到七牛云
String url = qiniuUtil.put64image(bytes, imageName);
url = url.split(".com")[0] + ".com/" + url.split(".com")[1];
rs.setCode(200);
rs.setResultBoolean(true);
rs.setResultMessage("上传图片成功");
//上传成功返回七牛云云服务器上图片的url地址,并且将该地址保存到customer表中
rs.setResultString("http://"+url);
return rs;
} catch (Exception e) {
rs.setResultBoolean(false);
rs.setCode(500);
rs.setResultMessage("上传图片异常");
return rs;
}

}
}
...全文
756 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
千千CHAN千千 2023-01-16
  • 打赏
  • 举报
回复

天呐,看了你的回复。。。我终于找到问题了。。我也是,笑死

9_winter 2020-02-07
  • 打赏
  • 举报
回复 1
已找到原因 controller中获取文件MultipartFile file的参数名为file 和我jsp页面属性名不对应 ,所以我jsp页面文件上传的input属性名也应为 file 将 name="pic" 改为name="file"问题解决 实属憨憨本憨了这种问题都会发生

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧