文档章节

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

二灯大师
 二灯大师
发布于 2017/08/30 10:13
字数 315
阅读 53
收藏 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);
}

 

© 著作权归作者所有

共有 人打赏支持
二灯大师
粉丝 3
博文 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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

idea新建springCloud项目(5)- 订单服务

1.创建订单api,如下: 2.创建订单实现逻辑 3.新建订单、订单商品表 -- 订单 create table `order_master` ( `order_id` varchar(32) not null, `buyer_name` varchar(32) not null comment......

monroeCode
14分钟前
0
1
游戏开发经验谈(二):对战类全球服游戏的设计与实现

上篇文章《游戏开发经验谈(一):游戏架构里隐藏的五个坑及其应对方案》,我们主要讲解了游戏架构设计当中隐藏的一些坑及其应对方案,错过的小伙伴可以回溯之前的内容。本期内容,将会重点介...

UCloudTech
24分钟前
0
0
Mysql基本语法

一.联合主键 drop table CONTENT_AND_CATALOG;CREATE TABLE `tobebetter`.`CONTENT_AND_CATALOG` ( `ID` VARCHAR(120) NOT NULL , `CONTENT_ID` VARCHAR(120) , `CA......

我是菜鸟我骄傲
25分钟前
0
0
179. centos7 安装mariadb

1. centos7 中安装mariadb 1.1 执行安装 centos7 自带了mariadb yum -y install mariadb mariadb-server 1.2 启动mariadb systemctl start mariadb 1.3 设置开机启动 systemctl enable maria......

Lucky_Me
32分钟前
0
0
【AI实战】动手训练自己的目标检测模型(YOLO篇)

在前面的文章中,已经介绍了基于SSD使用自己的数据训练目标检测模型(见文章:手把手教你训练自己的目标检测模型),本文将基于另一个目标检测模型YOLO,介绍如何使用自己的数据进行训练。 ...

雪饼
38分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部