文档章节

.net 接收ios, android的上传图片

开源中国顶顶顶
 开源中国顶顶顶
发布于 2017/08/30 10:13
字数 315
阅读 57
收藏 0

总的来说ios上传的是二进制, android上传的base64, 当然可以处理, 但是人家都很懒, 没办法, 刚来嘛, 只能我这边改啦

 

ios接收

/// <summary>
/// ios图片上传 
/// </summary> 
/// <returns>成功上传返回上传后的文件名</returns>
[HttpPost]
public IHttpActionResult UpLoadImage()
{
    var resultMsg = new ResultMsg
    {
        statue = Convert.ToInt32(StatueEnum.Fail)
    };
    try
    {
        var files = HttpContext.Current.Request.Files;
        if (files.AllKeys.Any())
        {
            foreach (string key in files.AllKeys)
            {
                HttpPostedFile file = files[key];
                if (file != null && string.IsNullOrEmpty(file.FileName) == false)
                {
                    var virthfolder = ConfigHelper.Instance.GetAppConfig("ServerImgaes");
                    var path = HttpContext.Current.Server.MapPath($"~/{virthfolder}");
                    var name = path + file.FileName;
                    file.SaveAs(name);

                    var fileInfo = new FileInfo(name);
                    var ext = Path.GetExtension(file.FileName);
                    var newfileName = Guid.NewGuid() + ext;
                    var newName = path + "/" + newfileName;
                    fileInfo.MoveTo(newName);

                    resultMsg.statue = Convert.ToInt32(StatueEnum.Success);
                    resultMsg.msg = International.UploadedSuccessfully;
                    resultMsg.data = new
                    {
                        fileName = newfileName,
                        url = Request.RequestUri.Authority + virthfolder, //可配, 
                    };
                }
            }
        }
        else
        {
            resultMsg.msg = International.UploadEmpty;
        }
    }
    catch (Exception exception)
    {
        resultMsg.statue = Convert.ToInt32(StatueEnum.Error);
        resultMsg.msg = International.InternalRequestError;
    }
    return Ok(resultMsg);
}

 

 

 

android

/// <summary>
/// Android图片上传 
/// </summary> 
/// <returns>成功上传返回上传后的文件名</returns>
[HttpPost]
public IHttpActionResult AndroidUpLoadImage()
{
    var resultMsg = new ResultMsg
    {
        statue = Convert.ToInt32(StatueEnum.Fail)
    };
    try
    {
        var files = HttpContext.Current.Request.Form;
        if (files.Count > 0)
        {
            var base64Code = files["Filedata"];
            var virthfolder = ConfigHelper.Instance.GetAppConfig("ServerImgaes"); //可配
            var path = HttpContext.Current.Server.MapPath($"~/{virthfolder}"); //保存路径 

            string ext = string.Empty;
            if (base64Code.Contains("data:image/jpeg;base64,"))
            {
                ext = ".jpeg";
                base64Code = base64Code.Substring(23);
            }
            else if (base64Code.Contains("data:image/png;base64,"))
            {
                ext = ".png";
                base64Code = base64Code.Substring(22);
            }
            else if (base64Code.Contains("data:image/jpg;base64,"))
            {
                ext = ".jpg";
                base64Code = base64Code.Substring(22);
            }
            var bytes = Convert.FromBase64String(base64Code);
            var ms = new MemoryStream(bytes);
            var newfilename = Guid.NewGuid() + ext;
            new Bitmap(ms).Save(path + "/" + newfilename);
            resultMsg.statue = Convert.ToInt32(StatueEnum.Success);
            resultMsg.msg = International.UploadedSuccessfully;
            resultMsg.data = new
            {
                filename = newfilename,
                url = Request.RequestUri.Authority + virthfolder, //可配, 
            };
        }
        else
        {
            resultMsg.msg = International.UploadEmpty;
        }
    }
    catch (Exception exception)
    {
        resultMsg.statue = Convert.ToInt32(StatueEnum.Error);
        resultMsg.msg = International.InternalRequestError;
    }
    return Ok(resultMsg);
}

 

© 著作权归作者所有

共有 人打赏支持
开源中国顶顶顶
粉丝 4
博文 77
码字总数 66184
作品 0
海淀
关于“发送原图”功能问题的记录

本文主要记录一个bug从发现、定位到延期解决的过程。文末添加了已踩过的坑 近期在做“发送原图”功能的时候,遇到一个bug:在Android、Windows、Mac 客户端发送原图,iOS客户端接收,保存原图...

si1ence
2017/12/14
0
0
在Android中自定义IOS风格的按钮

IOS风格的UI比较流行,很多Android的UI设计者也愿意将Android的UI设计成类似IOS系统的UI风格。下面是一个例子,说明如何使用Shape来定义一个IOS风格的按钮。 定义一个iosbuttongrouped.xml。...

迷途d书童
2012/03/21
0
0
Unity与IOS交互,调用IOS系统相机和相册

前面两篇总结了一下unity与android的简单交互和调用安卓系统相机和相册,比较蛋疼的是,后来发现不同的测试机上会有不同的bug。。。下阶段要一个一个的解决一下 今天总结一下与IOS的交互。这...

qq_32587659
05/16
0
0
转换 iOS 用户界面到 Android 的 5 大要诀

转换 iOS 用户界面到 Android 的 5 大要诀 2011-08-09 17:47 by 资深编辑wangguo评论(1)有1640人浏览 androidiOSUI <> 猎头职位:北京:ITeye网站诚聘产品交互设计 目前许多公司都正将他们的i...

冯京宝
2012/06/17
0
0
“沙盒之内”项目展示运行在iOS之上的“Hello World”Android应用

"In the Box" Project Showcases "Hello World" Android App Running on iOS “沙盒之内”项目展示运行在iOS之上的“Hello World”Android应用 posted by Hadrien Grasland on Thu 2nd Jun ......

xyxzfj
2011/06/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

原型模式

1、原型模式-定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 克隆(浅度克隆->拷贝值类型或者引用,深度克隆->创建新的对象,开辟新的内存) 例如客户端知道抽象Pro...

阿元
今天
30
0
awk命令扩展使用操作

awk 中使用外部shell变量 示例1 [root@centos01 t1022]# A=888[root@centos01 t1022]# echo "" | awk -v GET_A=$A '{print GET_A}'888[root@centos01 t1022]# echo "aaaaaaaaaaaaa" | aw......

野雪球
今天
27
0
深入解析MySQL视图VIEW

Q:什么是视图?视图是干什么用的? A:视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。作为一个select语句保存在数据字典中的。   通过视图,可以展现基表的部分数据;...

IT--小哥
今天
36
0
虚拟机学习之二:垃圾收集器和内存分配策略

1.对象是否可回收 1.1引用计数算法 引用计数算法:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时候计数器值为0的对象就是不可能...

贾峰uk
今天
23
0
smart-doc功能使用介绍

smart-doc从8月份底开始开源发布到目前为止已经迭代了几个版本。在这里非常感谢那些敢于用smart-doc去做尝试并积极提出建议的社区用户。因此决定在本博客中重要说明下smart-doc的功能,包括使...

上官胡闹
昨天
35
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部