时间: 2016/11/05 21:06:19
基本过程
1) 调用 FileReader 的 reader.readAsDataURL(img); 方法, 在其onload事件中, 将用户选择的图片读入 Image对象.
2) 在image对象的 onload 事件中, 通过 canvas 的 canvas.getContext(''2d'') 的 drawImage 方法, 将Image 改变大小绘制到canvas上.
3) 通过 canvas.toDataURL("image/jpeg", 0.1); 方法, 将图片变成base64字符串, 传入服务端.
1 var vueImg = new Vue({
2 el: "#divCarImages",
3 data: { model: { carId: ''@carId'', imageTitle:'''',img64:'''' }, images: [] },
4 methods: {
5 imageHandle: function () {
6 var fup = $("#fileImg")[0];
7
8 var img = fup.files[0];
9
10 var image = new Image();
11 var canvas = $("#canvas")[0];//document.createElement("canvas");
12 var ctx = canvas.getContext(''2d'');
13
14 image.onload = function () {
15 var w = image.naturalWidth,
16 h = image.naturalHeight;
17
18 var toSize = 400;
19 canvas.width = toSize;
20 canvas.height = toSize;
21
22 var w2 = toSize, h2 = toSize;
23 if (w > h) {
24 h2 = h / w * toSize;
25 } else {
26 w2 = w / h * toSize;
27 }
28
29 ctx.drawImage(image, 0, 0, w, h, 0, 0, w2, h2);
30
31 }
32
33 // 判断是否图片
34 if (!img) {
35 return;
36 }
37
38 // 判断图片格式
39 if (!(img.type.indexOf(''image'') == 0 && img.type && /\.(?:jpg|png|gif)$/.test(img.name))) {
40 alert(''图片只能是jpg,gif,png'');
41 return;
42 }
43
44 var reader = new FileReader();
45
46 reader.onload = function (e) { // reader onload start
47 var url = reader.result;
48 image.src = url;
49
50 } // reader onload end
51
52 reader.readAsDataURL(img);
53 }
54
55 }
56 });
1 function uploadImg() {
2 var canvas = $("#canvas")[0];
3 vueImg.model.img64 = canvas.toDataURL("image/jpeg", 0.1);
4 //$("#testMsg").html(imgData.length);
5
6 // ajax 上传图片
7 $.post("@Url.Content("~/AliOss/SaveCarImage")", vueImg.model , function (ret) {
8
9 parseAjaxData(data, function (model) {
10 console.log(model.Path);
11 alert(model.Path);
12 $(''#showimg'').html('''');
13 })
14 }, ''json'');
15 }
原文地址: http://www.cnblogs.com/ybst/p/6033199.html