js代码
//利用formdata上传

 var dataUrl = $('#canvas').getDataUrl();
var img = $('<img>').attr('src', dataUrl); //显示图片
var oMyForm = new FormData(); //创建formdata
var blobBin = dataURLtoBlob(dataUrl); //base64转换blob
oMyForm.append("blobObject", blobBin); //想formData添加blob数据
$.ajax({
url: $.getUrl()+"activity/updateImg",
type: "POST",
data: oMyForm,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (msg) {
console.log("yes");
}
}); //**dataURL to blob** dataURL转换blob
function dataURLtoBlob(dataurl) {
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], { type: mime });
}
java代码
 
//spring mvc
 @RequestMapping(value="updateImg",method=RequestMethod.POST)
public void upLoad(HttpServletRequest request,HttpServletResponse response) throws IOException {
System.out.println("enter...");
// 从请求中获取到文件信息需要将请求转换为MultipartHttpServletRequest类型
MultipartHttpServletRequest MulRequest = request instanceof MultipartHttpServletRequest ? (MultipartHttpServletRequest) request : null;
Iterator<String> fileNames = MulRequest.getFileNames();
byte[] imgByte = null;
if (fileNames.hasNext()) { // 遍历请求中的图片信息
String fileName = fileNames.next(); // 图片对应的参数名
MultipartFile file = MulRequest.getFile(fileName); // 获取到图片
if (file != null) {
System.out.println("file.getSize():" + file.getSize()); // 图片大小
imgByte=file.getBytes();// 可以获取到图片的字节数组
}
} for(int i=0;i<imgByte.length;++i)
{
if(imgByte[i]<0)
{//调整异常数据
imgByte[i]+=256;
}
}
//生成jpeg图片
String imgFilePath = "d://222.jpg";//新生成的图片
OutputStream out = new FileOutputStream(imgFilePath);
out.write(imgByte);
out.flush();
out.close();
}

最新文章

  1. 利用history实现无刷新跳转界面
  2. 【转】WPF DataGrid 获取选中的当前行某列值
  3. 写在最前面 - 每天5分钟玩转 OpenStack(1)
  4. PHP操作MongoDB学习笔记
  5. stm32cube--串口
  6. 没有好看的 Terminal 怎么能够快乐地写代码
  7. MVVM了解
  8. Codeforces Round #319 (Div. 1) C. Points on Plane 分块
  9. Introduction to SignalR -摘自网络
  10. EditPlus3.3 集成 SVN
  11. ZH奶酪:Ionic中(弹出式窗口)的$ionicModal使用方法
  12. SQL 查询中case的运用
  13. 如何使用多数据源,同时使用jpa和jdbctemplate
  14. 在Windows系统下安装Beautiful Soup4的步骤和方法
  15. 在 Linux 上如何挂载 qcow2 磁盘镜像
  16. 使用XPath对象解析xml文件
  17. python模块--pickle&amp;json&amp;shelve
  18. 【数论Day1】 最大公约数(gcd)题目
  19. SQL中的全局变量和局部变量(@@/@)
  20. 关于XCode更换项目名称

热门文章

  1. 【转】valueof()用法
  2. linux与php时间函数有关的错误解决
  3. iOS程序 防止动态调试和代码注入
  4. win8.1安装Matlab7.0的兼容问题
  5. python 获取脚本所在目录
  6. Java中获取长度length和size的问题
  7. Chinese economic influence in North Korea
  8. Python开发入门与实战20-微信开发配置
  9. 【JavaScript】之【Object】
  10. php大力力 [048节] php一点支付开发资料,很散