springboot上传文件

最近在项目中遇到了文件上传的工作,由此记录一下 

效果图预览

后台代码

@RestController
@RequestMapping("/uploadImageManage")
@Api(value = "图片上传", description = "图片上传")
public class UploadImageController {
	@RequestMapping(method = RequestMethod.POST, path = "/uploader")
    @ResponseBody
    public Object uploader(@RequestParam String type,@RequestPart("file") MultipartFile file) throws IllegalStateException, IOException {
		String packageName = "";
		if("1".equals(type)) {
			//商品图片
			packageName = Constants.GOODS_IMG;
		}else if("2".equals(type)) {
			//商品详情图片
			packageName = Constants.GOODS_IMG_DETAIL;
		}else if("3".equals(type)) {
			//banner图片
			packageName = Constants.BANNER;
		}else if ("4".equals(type)) {
			//广告图
			packageName = Constants.ADV_IMG;
		}else if ("5".equals(type)) {
			//微信公众号
			packageName = Constants.WXGZH_IMG;
		}
		  File files=new File(Constants.IMG_PATH + packageName);
          // 创建文件夹
          if (!files.exists()) {
          	files.mkdirs();
          }
		
		//String fileName=file.getOriginalFilename();// 文件原名称
         // 自定义的文件名称
         String trueFileName=String.valueOf(System.currentTimeMillis())+".png";
          // 转存文件到指定的路径
          file.transferTo(new File(Constants.IMG_PATH + packageName + trueFileName));
          String url = packageName + trueFileName;
		 return ResultUtil.succ(url);
	}

页面

主要是要导入layui.css样式和

<div class="form-group col-sm-6">
					<label class="col-sm-4 control-label">商品图片:</label>
					<div class="col-sm-8">
						<!-- <input id="originalImg" type="file" style="width: 180px; height:30px;">-->
							<button class="layui-btn" id="img1" type="button">上传图片</button>
							<div class="layui-upload-list">
								<div class="layui-upload-img" style="position: relative;">
									<img class="layui-upload-img" id="imgMsg1">
									<p class="diyControls"><span class="diyCancel"><i></i></span></p>
								</div>
								
								<p id="demoText"></p>
							</div>
							<input class="layui-hide" name="originalImg" id="originalImg" type="hidden" />
					</div>

					</div>

				
				<div class="form-group col-sm-12">
					<label class="col-sm-2 control-label">商品详情图片:</label>
					<div class="col-sm-10">
						<div class="layui-upload">
							<button class="layui-btn" id="img2" type="button">多图片上传</button>
							<div style="margin-top: 10px;">
								<div class="layui-upload-list" id="imgMsg2"></div>
							</div>
							<input class="layui-hide" name="detailImg" id="detailImg" type="hidden" />
						</div>
					</div>
				</div>

javascript

导入layui.js

//普通图片上传
			var uploadInst = upload.render({
				elem: '#img1',
				url: '/tsadmin/uploadImageManage/uploader?type=1',
				before: function(obj) {
					//预读本地文件示例,不支持ie8
					obj.preview(function(index, file, result) {
						$('#imgMsg1').attr('src', result); //图片链接(base64)
					});
				},
				done: function(res) {
					//上传完毕
					if(res.code === "000") {
						$("#originalImg").val(res.obj);
					} else {
						layer.msg(res.state, {
							icon: 2,
							shift: 6
						});
					}
				},
				error: function() {
					//演示失败状态,并实现重传
					var demoText = $('#demoText');
					demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
					demoText.find('.demo-reload').on('click', function() {
						uploadInst.upload();
					});
				}
			});

			//多图片上传
			var uploadInst2 = upload.render({
				elem: '#img2',
				url: '/tsadmin/uploadImageManage/uploader?type=2',
				multiple: true,
				before: function(obj) {
					//预读本地文件示例,不支持ie8
					obj.preview(function(index, file, result) {
						var msg = "<div class='layui-upload-img' style='position: relative;'>";
						msg += "<img class='layui-upload-img' src='" + result + "'/>";
						msg += "<p class='diyControls'><span class='diyCancel'><i onclick='removeClick(this)'></i></span></p></div>";
						$('#imgMsg2').append(msg);
					});
				},
				done: function(res) {
					//上传完毕
					if(res.code === "000") {
						var detailImg = [];
						var s = $("#detailImg").val();
						if(s != ''){
							detailImg.push(s);
						}
						detailImg.push(res.obj);
						$("#detailImg").val(detailImg.join(","));
					} else {
						layer.msg(res.state, {
							icon: 2,
							shift: 6
						});
					}
				}
			});

		});

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值