MVC 使用AJAX POST上传图片的方式

我们来总结一下使用AJAX以POST方式上传图片的方法。

一、普遍的一种是以file的格式请求。在Request.Files中获取文件。

  public ActionResult UploadFile(HttpContext request)
        {
            HttpPostedFileBase img = Request.Files[0];
            string path = AppDomain.CurrentDomain.BaseDirectory + @"Upload/";
            img.SaveAs(Path.Combine(path, img.FileName));
            return View();
        }

 

二、另一种是通过Json上传64位编码(base64 URL)的图片数据进行保存。

64位编码的图片数据格式一般如下:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABG4AAAH0CAYAAABsCGvoAAAgAElEQVR4Xuy9C5RV1Zmo++96P3ZVURSv4hEEFdQobYKtJESjJME+6WgTpPUQIrfpY8NRui/aKlcvY2hON0fN5TIUbh/6XDs9bgah0+1BY+gk2p2QFpIAgk9AiGBhlQgIokgVRQFVu3bd9S+c21WbXVV71157Pfb+loNh1ar5+Oc3Z/H46p9zRnqsR3ggAAEIQAACEIAABCAAAQhAAAIQgAAEAkcggrgJ3JwQEAQgAAEIQAACEIAABCAAAQhAAAIQsAkgblgIEIAABCAAAQhAAAIQgAAEIAABCEAgoAQQNwGdGMKCAAQgAAEIQAACEIAABCAAAQhAAAKIG9YABCAAAQhAAAIQgAAEIAABCEAAAhAIKAHETUAnhrAgAAEIQAACEIAABCAAAQhAAAIQgADihjUAAQhAAAIQgAAEIAABCEAAAhCAAAQCSgBxE9CJISwIQAACEIAABCAAAQhAAAIQgAAEIIC4YQ1AAAIQgAAEIAABCEAAAhCAAAQgAIGAEkDcBHRiCAsCEIAABCAAAQhAAAIQgAAEIAABCCBuWAMQgAAEIAABCEAAAhCAAAQgAAEIQCCgBBA3AZ0YwoIABCAAAQhAAAIQgAAEIAABCEAAAogb1gAEIAABCEAAAhCAAAQgAAEIQAACEAgoAcRNQCeGsCAAAQhAAAIQgAAEIAABCEAAAhCAAOKGNQABCEAAAhCAAAQgAAEIQAACEIAABAJKAHET0IkhLAhAAAIQgAAEIAABCEAAAhCAAAQggLhhDUAAAhCAAAQgAAEIQAACEIAABCAAgYASQNwEdGIICwIQgAAEIAABCEAAAhCAAAQgAAEIIG5YAxCAAAQgAAEIQAACEIAABCAAAQhAIKAEEDcBnRjCggAEIAABCEAAAhCAAAQgAAEIQAACiBvWAAQgAAEIQAACEIAABCAAA...AgkKCA4CbBouoSAQIECBAgQIAAAQIECBAgkIaA4CaNOuoFAQIECBAgQIAAAQIECBAgkKCA4CbBouoSAQIECBAgQIAAAQIECBAgkIaA4CaNOuoFAQIECBAgQIAAAQIECBAgkKCA4CbBouoSAQIECBAgQIAAAQIECBAgkIaA4CaNOuoFAQIECBAgQIAAAQIECBAgkKCA4CbBouoSAQIECBAgQIAAAQIECBAgkIaA4CaNOuoFAQIECBAgQIAAAQIECBAgkKCA4CbBourS9wLLy8vhypUrob+/Pxw8eBALAQIECBAgQIAAAQIECBAonIDgpnAlS7vBY2Nj4e7du6GpqSkMDg4KXNIut94RIECAAAECBAgQIECAQBkBwY0hUjcC09PT4enTp9kMmdIxOzsbhoeHw/z8fOjp6QlDQ0Ohubk5XL16NbS3t4epqakwMjIS2trafvTavXv3ws2bN1e+Pjo6GmZmZkJLS8ua13R0dNSNh4YQIECAAAECBAgQIECAAAHBjTFQNwLj4+Ph2LFjq86y+XzZU29vb4ghzPHjx0NfX1/W/vj11V6LAc+FCxdCDHG6urqy82NANDk5GS5evPija+oGQ0MIECBAgAABAgQIECBAgMAnAcGNYVA3AqsFN4uLi9mSqbm5uZXlUzG4KQUypRkyMbj50ms3btzIlmCVjiNHjmTBzQ+vqRsMDSFAgAABAgQIECBAgAABAoIbY6CeBCYmJrKlUgMDAyvNiq/FmTJHjx4Nly9fDpcuXQp5gpvPZ9yUbr5a2FNPHtpCgAABAgQIECBAgAABAgTMuDEG6kqgtDlxbNTp06fD4cOHw7Vr17J9aU6dOhWWlpbCmTNnvnrGTdwDp7THTWnj49UCoLrC0BgCBAgQIECAAAECBAgQaHgBwU3DDwEABAgQIECAAAECBAgQIECAQL0KCG7qtTLaRYAAAQIECBAgQIAAAQIECDS8wP8AN7hUDozwDE4AAAAASUVORK5CYII=

可以在html的image标签中直接指定给src。

Ajax上传方法:

var picture = jqplotToImg($('#ChartContent'));
    //prompt("", picture);

    $.ajax({ type: 'POST',
        url: '../Demo/UploadFileJson',
        async: false,
        data: { source: picture },
        success: function (data) {
            //alert(data);
        }
    });

MVC中接收,并保存:

 public ActionResult UploadFileJson(JObject request)
        {
            string img64Data = request.Value<string>("imgData");

            using (MemoryStream ms = new MemoryStream(Convert.FromBase64String(img64Data)))
            {
                using (Bitmap img = new Bitmap(ms))
                {
                    img.Save("SavingPath" + "ImageName.jpg");
                }
            }
            return Json("ok");
        }

 

 

转载于:https://www.cnblogs.com/firstdown/p/4452146.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET MVC4中可以使用JCrop插件进行图片裁剪,并通过Ajax裁剪后的图片。以下是实现步骤: 1. 引入JCrop插件和jQuery库。 2. 在视图中添加一个图片标签和一个用于显示裁剪后图片的标签。 ```html <div> <img src="原始图片路径" id="crop-img" /> </div> <div> <img src="" id="crop-result" /> </div> ``` 3. 在JavaScript中初始化JCrop插件。 ```javascript $(function() { $('#crop-img').Jcrop({ aspectRatio: 1, // 宽高比 onSelect: updateCoords // 选择区域后的回调函数 }); }); ``` 4. 编写回调函数updateCoords,获取裁剪后的坐标值。 ```javascript function updateCoords(c) { $('#x').val(c.x); $('#y').val(c.y); $('#w').val(c.w); $('#h').val(c.h); } ``` 5. 添加表单,包含用于保存坐标值的隐藏输入框和一个上按钮。 ```html <form id="crop-form" method="post" enctype="multipart/form-data"> <input type="hidden" id="x" name="x" /> <input type="hidden" id="y" name="y" /> <input type="hidden" id="w" name="w" /> <input type="hidden" id="h" name="h" /> <input type="file" id="file" name="file" /> <button type="submit" id="submit">上</button> </form> ``` 6. 绑定上按钮点击事件,在点击上按钮时使用Ajax裁剪后的图片。 ```javascript $('#submit').click(function() { var formData = new FormData($('#crop-form')[0]); $.ajax({ type: 'post', url: '上图片的URL', data: formData, processData: false, contentType: false, success: function(data) { $('#crop-result').attr('src', '上后的图片路径'); }, error: function() { alert('上失败'); } }); return false; }); ``` 以上就是使用JCrop插件进行图片裁剪并上的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值