vue ajax图片上传页面不刷新访问图片地址

//JSP前段保存页面
 <label class="control-label">品种照片&nbsp;&nbsp;</label>
					<input id="filename" name="filename" type="file">
			<div class="controls">
				<input type="hidden" name="newtypepic" class="input-xlarge newtypepic" id=""
					v-model="vueObj.newtypepic"/>
			</div>



JS放入from发送到数据库 


JS放入from发送到数据库

// 保存表单数据
function saveNtypProAch(vueObj) {
	 var formData = new FormData();
	   var img_file = $("#filename");
	   var fileObj = img_file[0].files[0];
	   formData.append("filename",fileObj);
	   formData.append("vueObj",JSON.stringify(vueObj)),
	// alert(vueObj);
	$.ajax({
		type : 'post',
		url : PageContext + '/saveNtyp.do',
		dataType : 'json',
		data :formData,
		 async:false,
	     processData:false,
	     contentType :false,
		success : function(data) {
			alert("保存成功(" + data + ")!");
		},
		error : function(data, type, err) {
			alert("错误类型:" + type + "; 错误信息:" + err);
		}
	});
}




后台进行保存的两种方法
/**
	 * 添加&更新 -主要仪器设备数据库
	 * @param request
	 * @param resProAch
	 * @param httpSession
	 * @return
	 * @throws IOException 
	 */
	@ResponseBody
	@RequestMapping("/saveNtyp.do")
	public int saveNytp(HttpServletRequest request,String vueObj,@RequestParam(value = "filename", required = false) MultipartFile filename,
			 HttpSession httpSession) throws IOException{
		// 将json解析为基础表数据
				TNewType Nytp = JSONObject.parseObject(vueObj, TNewType.class);
				
				
				
		//图片上传下载
		 if (!filename.isEmpty()) {
			 //获取当前的项目地址
      	   String url=request.getSession().getServletContext().getRealPath("pictures\\");

          File file = new File(url);
          String fileName = filename.getOriginalFilename();
          String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
          
          if (!file.isDirectory() && !file.exists()) {
              file.mkdir();
          }

          InputStream is = filename.getInputStream();
         // String name = filename.getOriginalFilename();
          String name= UUID.randomUUID().toString();

          FileOutputStream fileOutputStream = new FileOutputStream(url + "\\" + name+"."+suffix);

          byte[] b = new byte[is.available()];

          is.read(b);

          fileOutputStream.write(b);
          fileOutputStream.close();
         String urlname="pictures\\" + name+"."+suffix;
         Nytp.setNewtypepic(urlname);
      } 
		
		 
		int result = 0;
		Nytp.setCreatedatetime(new Date());
		if(Nytp.getId()!=null){
			result = newTypeMapper.updateByPrimaryKey(Nytp);
		}else{
		    result = newTypeMapper.insert(Nytp);
		}
		
        return result;
	}















后台纯保存的方法

@ResponseBody
	@RequestMapping("/upload.do")
    public Object upload(@RequestParam(value = "filename", required = false) MultipartFile filename,HttpServletRequest request)
            throws IOException {
        if (!filename.isEmpty()) {
        	   String url=request.getSession().getServletContext().getRealPath("pictures\\");
        	   //String url =path+"/pictures"; 
           // String url = "questionnaire/webapp";

            File file = new File(url);

            if (!file.isDirectory() && !file.exists()) {
                file.mkdir();
            }

            InputStream is = filename.getInputStream();
           // String name = filename.getOriginalFilename();
            String name= UUID.randomUUID().toString();

            FileOutputStream fileOutputStream = new FileOutputStream(url + "\\" + name);

            byte[] b = new byte[is.available()];

            is.read(b);

            fileOutputStream.write(b);
            fileOutputStream.close();
            url=url + "\\" + name;
            return url;
        } else {
            return "on";
        }
    }
	




接收方法:

JSP返回页面地址vue

    <td v-text="item.productparameter"></td>
		    <td v-text="item.productcompanyurl"></td>
		    <td v-if=" item.productpic == null || item.productpic==''"></td>
            <td v-else><a :href="'../'item.productpic">照片浏览</a></td>
		    <td v-text="item.createuser"></td>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值