SpringBoot上传图片到服务器遇到的坑,以及心得,志伟随笔( ̄▽ ̄)"

9 篇文章 0 订阅
4 篇文章 0 订阅

很久没写博客了,来一篇吧
老板提出需求,上传图片到服务器然后在前端页面展示,然后写了一个小Demo,测试一下

前端html简单代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script>
			
		</script>
	</head>
	<body>
		<form action="http://xx.xx.xx.xx:xxxx" method="post" enctype="multipart/form-data"> 
		<input type="file" name="pic" />
		<input type="submit" />
		</form>
	</body>
</html>

Java代码如下:

	@ResponseBody
	@RequestMapping("uploadPic")
	public String imgUpdate1(@RequestParam(value = "pic", required = false) MultipartFile file) {
		// 获取文件名
		String fileName = file.getOriginalFilename();
		log.info("上传的文件名为:" + fileName);
		// 获取文件的后缀名
		String suffixName = fileName.substring(fileName.lastIndexOf("."));
		log.info("上传的后缀名为:" + suffixName);
		// 文件上传后的路径
		String filePath = "E:\\pic\\";

		String se = filePath + fileName;

		File dest = new File(se);
		// 检测是否存在目录
		if (!dest.getParentFile().exists()) {
			dest.getParentFile().mkdirs();
		}
		try {
			file.transferTo(dest);
			return se;
		} catch (IllegalStateException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return se;

	}

然后测试,结果不理想,直接nullpoint空指针异常,提示

在这里插入图片描述
在这里插入图片描述

查看日志,发现

 String fileName = file.getOriginalFilename();

这一行获取不到数值,然后开始问度娘,第一种说法说的是@RequestParam(value = “pic”)这个value参数参数跟前端页面的form表单中的name不一致,好吧,果断改为pic,然后错误依旧是空指针,然后又百度,又找到一个答案,说前端页面上传页面没有参数enctype=“multipart/form-data”,好吧,写后台的我对前台这个参数不清楚,但是查了一下发现上传文件必备的参数,好吧学到了,然后改了一下,返回了图片路径,

在这里插入图片描述

这个路径是图片的绝对路径,等后期如果前台需要改为图片网址的话还需要修改,这里只是测试,然后打开服务器的那个设置的文件存储路径,效果如下
在这里插入图片描述
服务器上存上来了,图片果然上到服务器了,接下来就是存储图片路径到数据库,然后让前台展示出来,
未完待续。。。。。。。。。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值