使用ajax上传图片到服务器及回显

html界面
需要导入:

用户头像:
js代码
function uploadPic() {
		// 上传设置
		var options = {
				// 规定把请求发送到那个URL
				url: "/upload",
				// 请求方式
				type: "post",
				// 服务器响应的数据类型
				dataType: "json",
				// 请求成功时执行的回调函数
				success: function(data) {
					// 图片显示地址
					$("#allUrl").attr("src", data.url);
				}
		};
		
		$("#jvForm").ajaxSubmit(options);
	}

springboot接受代码

	Controller类
@RequestMapping("/upload")    
	public PicUploadResult uploadPics(MultipartFile pic,HttpServletRequest request){
		//PicUploadResult
		String path=request.getSession().getServletContext().getRealPath("/");
		System.out.println(path);
		//构造一个返回的空对象
		PicUploadResult result = new PicUploadResult();
		//判断后缀,获取原名称,1.jpg
		String oldFileName = pic.getOriginalFilename();
		//截取后缀
		String extFileName = oldFileName
				.substring(oldFileName.lastIndexOf("."));
		//正则判断合法性
		if(extFileName.matches(".^(jpg|png|gif)$")){
			result.setError(1);
			//return result;
		}
		try {
			//判断木马,BufferedImage判断是否有宽高
			BufferedImage bi = ImageIO.read
					(pic.getInputStream());
			//getHeight没有抛异常说明数据流中有宽高的属性,不是木马
			result.setHeight(bi.getHeight()+"");
			result.setWidth(bi.getWidth()+"");
			//以上内容为判断木马过程;
			//生成路径 images\2018\07\27
			String dir = "/images/"+new SimpleDateFormat("yyyy-MM-dd").
					format(new Date())+"/";
			//拼接磁盘路径,拼接url路径
			path=path+dir;
			System.err.println(path);
			String urlPath="http://localhost:8080"+dir;
			System.out.println("urlPath:"+urlPath);
			//			String urlPath = contexPath+dir;
			//创建磁盘目录,等待输出文件
			File _dir = new File(path);
			if(!_dir.exists()){
				_dir.mkdirs();//tomcat下的webapp/ROOT/images/***/
			}
			//计算文件重命名
			String fileName = System.currentTimeMillis()
					+""+RandomUtils.nextInt(100,999)+extFileName;
			System.out.println("验证:"+dir+fileName);
			System.out.println("url:"+urlPath+fileName);
			result.setUrl(urlPath+fileName);
			//写出磁盘
			pic.transferTo(new File(path+fileName));
			//error为0
			result.setError(0);
			// return urlPath+fileName;
			
			return result;
		} catch (Exception e) {
			e.printStackTrace();
			result.setError(1);
			return result;
		}
	}

工具类:
	public class PicUploadResult {
    private Integer error=0;		//图片上传错误不能抛出,抛出就无法进行jsp页面回调,所以设置这个标识,0表示无异常,1代表异常
    private String url;             //应该是浏览器能够解析的具体页面路径  相对路径http://image.jt/1212.jpg 
    								//本地路径:存放图片路径     D:\jt-upload\images\2017\06\03
    private String width;
    private String height;          //如果认为的不指定,则使用的是图片自己的尺寸

    public Integer getError() {
        return error;
    }

    public void setError(Integer error) {
        this.error = error;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
    	System.err.println("url:"+url);
    	this.url = url;
    }

    public String getWidth() {
        return width;
    }

    public void setWidth(String width) {
        this.width = width;
    }

    public String getHeight() {
        return height;
    }

    public void setHeight(String height) {
        this.height = height;
    }
    
    

}

使用ajax上传图片到服务器及回显_第1张图片
使用ajax上传图片到服务器及回显_第2张图片
使用ajax上传图片到服务器及回显_第3张图片
使用ajax上传图片到服务器及回显_第4张图片

你可能感兴趣的:(java后端,HTML)