
b3比上限超出了29,所以最终是-100
PS,127+1在byte里会变成-128,所以不是直接用-128+29,而是-128+28,因为原来的数字加上1才能到-128
首先 0xa9的值是 169 所以 a=169-127-128=-86 因为有0的位置 ,所以是-87
下面 Byte.decode,查看源码便可以知道
转成了integer,也就是 169 ,下面判断了 是否 在 -128到 127之间,很明显 ,不在 ,所以报错 !
下面代码是有图片上传的,附件上传也和这个差不多,你自己改改吧,对自己有好处的,希望对你有帮助。/**
* 图片上传
* @param request
* @return
* @throws Exception
*/
private List<?>imgUpload(HttpServletRequest request)throws Exception{
//存放图片对象
List<ImgObject>imgUrls = new ArrayList<ImgObject>()
//图片后缀
String imgSuffix = ".jpeg"
//存放目录
String dirName = "/upload/Img"
//获得存储的目录
String dir = request.getSession().getServletContext().getRealPath(dirName)
//服务器地址
String path = request.getScheme() + "://" + request.getServerName()
+ ":" + request.getServerPort() + request.getContextPath()
+ dirName
//实例化File对象
File mdFile = new File(dir)
//如果目录不存在,创建一个目录
if(!mdFile.exists()){
mdFile.mkdirs()
}
//转换为MultipartHttpRequest对象
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request
//页面控件的文件流
List<MultipartFile>multiFiles = multipartRequest.getFiles("contentFile")
for(MultipartFile multiFile : multiFiles){
if(!multiFile.isEmpty()){
//文件名
String fileName = UUID.randomUUID().toString()+imgSuffix
//图片url
String imgUrl = path +"/"+fileName
//实例化File对象
File savaFile = new File(dir+"/"+fileName)
Image img = ImageIO.read(multiFile.getInputStream())
int width=img.getWidth(null)
int height=img.getHeight(null)
BufferedImage bufferImg = new BufferedImage((int) width, (int) height, BufferedImage.TYPE_INT_RGB)
bufferImg.getGraphics().drawImage(img.getScaledInstance(width, height, Image.SCALE_SMOOTH), 0, 0, null)
ImageIO.write(bufferImg, "JPEG", savaFile)
//封装图片信息
ImgObject tbcic = new ImgObject()
tbcic.setImgUrl(imgUrl)
tbcic.setImgWidth(width)
tbcic.setImgHeigth(height)
imgUrls.add(tbcic)
}
}
return imgUrls
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)