ajax上传文件,图片并显示与删除(spring boot)

**

思路:先上传文件然后在读出来

**
之前本人都是用form提交上传文件,现在写个ajax的文件上传

先看下效果: 上传并在页面显示
在这里插入图片描述
关键代码:在启动类里面加入

//上传文件
	@Override
	 public void addResourceHandlers(ResourceHandlerRegistry registry) {
	     registry.addResourceHandler("/imctemp-rainy/**").addResourceLocations("file:D:/qqz7z8/");
	     //super.addResourceHandlers(registry);
	}

前端 html代码 :

<div id="app">
	<input type="file" name="file" id="file" multiple="multiple">
    <p id="url"><img src="" width=200></p>
    <input type="button" id="button" v-on:click="ff()" value="上传" >
</div>

前端 vue-ajax 代码 :

var vm=new Vue({
	 el:"#app",
	 data:{
		 
	 },
	 methods:{
		 ff:function(){
			 //alert(1);
			 var form = new FormData();
	            form.append("file", document.getElementById("file").files[0]);
	            alert($("#file").val());
	             $.ajax({
	                 url: "/ht/upload",      	//控制器路径  
	                 data: form,
	                 cache: false,
	                 async: false,				//同步异步  这里是同步
	                 type: "POST",              //类型,POST或者GET
	                 dataType: 'json',          //数据返回类型,可以是xml、json等
	                 processData: false,
	                 contentType: false,
	                 success: function (data) {      //成功,回调函数
	                     if (data) {
	                    	 var pic="/imctemp-rainy/"+data.fileName;   //获取图片路径
	                    	 alert(pic);
	                     	$("#url img").attr("src",pic);				//id为url的 改变属性 为图片+图片路径
	                     	// alert(JSON.stringify(data));
	                     } else {
	                     	alert("失败");
	                     }
	                 },
	                 error: function (er) {          //失败,回调函数
	                	 alert(JSON.stringify(data));
	                 }
	             });
		 }
	 }
})

后端 控制器 代码 :

	 //文件上传
		public static void uploadFile(byte[] file, String filePath, String fileName) throws Exception {        
			File targetFile = new File(filePath); 
			if (!targetFile.exists()) {
			   targetFile.mkdirs();    
			}        
			FileOutputStream out = new FileOutputStream(filePath +"/"+ fileName);
			out.write(file);      
			out.flush();   
			out.close(); 
		}
	  //处理文件上传
	  	@ResponseBody //返回json数据  
	  	@RequestMapping(value = "upload", method = RequestMethod.POST) 
	  	public JSONObject uploadImg(@RequestParam("file") MultipartFile file,HttpServletRequest request) {        
	  	    String contentType = file.getContentType(); 
	  	    System.out.println(contentType);
	  		String fileName = System.currentTimeMillis()+file.getOriginalFilename();  //可以改图片名字,改完要加后缀
	  		System.out.println(fileName);
	  		String filePath = "D:/qqz7z8";
		    JSONObject jo = new JSONObject();//实例化json数据
	
	  		if (file.isEmpty()) {   
	  			jo.put("success", 0);
	  			jo.put("fileName", "");
	  		}        
	  		try {  
	  		   uploadFile(file.getBytes(), filePath, fileName);  
	  		   jo.put("success", 1);
	  		   jo.put("fileName", fileName);	//存入图片名
	  		  // jo.put("xfileName", filePath+"/"+fileName);
	  		} catch (Exception e) {  
	  		// TODO: handle exception        
	  	
	  		}   
	  		String str="/imctemp-rainy/"+fileName;
	
	  		//返回json
	  	    return jo;    
	
	  	}   

删除图片的后端代码

//删除
	@RequestMapping("delAll")
	@ResponseBody
	public String delAll(HttpServletRequest req) {
		int x=Integer.parseInt(req.getParameter("nid"));   //接收删除id
		News news= newsService.findById(x);
		String str1=news.getTuhref();     //得到图片的路径字段
		String str2[]=str1.split("/");	  //截取一部分   获取图片名
		File f=new File("D:/qqz7z8/"+str2[str2.length-1]);
		f.delete();			//删除
	    return "1"; 
	}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值