ASP.NET MVC上传图片的奇怪问题
2017-04-08 01:10
344 查看
本文来源于博客园-钱智慧,转载请注明出处
表现:客户说就华为的手机有问题,而且是在QQ里打开有问题,如果在手机的浏览器上,则可以正常上传图片。
有问题的代码如下:
在“基本格式判断”里,有问题的代码没有对oExtName是否为空作判断,而华为手机通过qq打开链接上传图片,传递过来的图片名称是image%3A98192,其中image%3A经过Url解码后是image:,不同的照片后边的数字会不同,
获取扩展名发现也是空的,这就导致客户总是通不过“基本格式判断”。
“基本格式判断”里的if应该作如下修改:
至于为何发生这种情况,Google之后无果,百度搜索之后也没有得到什么实质性信息,朋友们如果有知道其中原因的,望不吝赐教:
本文来源于博客园-钱智慧,转载请注明出处
表现:客户说就华为的手机有问题,而且是在QQ里打开有问题,如果在手机的浏览器上,则可以正常上传图片。
有问题的代码如下:
private ResultModel SaveImg(HttpPostedFileBase file) { var ret = new ResultModel() { IsSucc=false,Message="未知错误"}; try { //基本格式判断 string oExtName = Path.GetExtension(file.FileName).ToLower(); if (!ImgDict.ContainsValue(oExtName)) { ret.IsSucc = false; ret.Message = "图片格式不支持"; return ret; } //图片大小限制 if (file.ContentLength > (maxSize * 1024 * 1024)) { ret.IsSucc=false; ret.Message = "图片大小不能超过" + maxSize + "M"; return ret; } //基于图片内容的格式判断 ImageFormat f = null; using (var img = Image.FromStream(file.InputStream)) { if (!ImgDict.ContainsKey(img.RawFormat)) { ret.IsSucc = false; ret.Message = "图片格式不支持"; return ret; } else { f = img.RawFormat; } } //保存 string newName = MakeNewName(ImgDict[f]); file.SaveAs(System.Web.HttpContext.Current.Server.MapPath("/upload/" + newName)); } catch (Exception e) { LogHelper.Err(e); ret.IsSucc = false; ret.Message = e.Message; } return ret; } private static Dictionary<ImageFormat, string> ImgDict = new Dictionary<ImageFormat, string>() { {ImageFormat.Gif,".gif"}, {ImageFormat.Jpeg,".jpg"}, {ImageFormat.Png,".png"}, {ImageFormat.Bmp,".bmp"} };
在“基本格式判断”里,有问题的代码没有对oExtName是否为空作判断,而华为手机通过qq打开链接上传图片,传递过来的图片名称是image%3A98192,其中image%3A经过Url解码后是image:,不同的照片后边的数字会不同,
获取扩展名发现也是空的,这就导致客户总是通不过“基本格式判断”。
“基本格式判断”里的if应该作如下修改:
if (!string.IsNullOrEmpty(oExtName) && !ImgDict.ContainsValue(oExtName))
至于为何发生这种情况,Google之后无果,百度搜索之后也没有得到什么实质性信息,朋友们如果有知道其中原因的,望不吝赐教:
本文来源于博客园-钱智慧,转载请注明出处
相关文章推荐
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- ASP.NET\MVC 解决C#上传图片质量下降,图片模糊,水印有杂点的问题
- ASP.NET MVC ueditor图片上传失败问题
- 【Pro ASP.NET MVC 3 Framework】.学习笔记.10.SportsStore:上传图片
- ASP.NET MVC 4.0 CKEditor jquery 文章管理 图片上传 解决方案
- 解决FCKeditor For asp.net 上传图片时中文乱码问题
- ASP.NET MVC 中最简单的上传图片、生成缩略图的小例子
- asp.net mvc上传图片案例
- ASP.NET MVC WebAPI 上传图片实例与实战计算BOM成本的存储过程
- asp.net上传图片所遇到的问题
- xhEditor 在asp.net mvc和webform下配置图片上传
- [ueditor] Asp.net上传图片出错问题
- asp.net mvc 2.0 简单的上传图片到数据库和显示图片
- asp.net MVC实现无组件上传图片实例介绍
- dhl: ASP.NET MVC1.0 的图片(文件)上传功能
- ASP.Net MVC3 图片上传详解(form.js,bootstrap)
- FCKEditor 2.6.3 ASP.NET 图片上传 停留在进度条问题解决
- asp.net+FCKeditor上传图片显示叉叉图片无法显示的问题的解决方法
- asp.net+FCKeditor上传图片显示叉叉图片无法显示的问题的解决方法
- asp.net MVC实现无组件上传图片