问题

编程以来今本没有使用input[type=file]这个控件过,今天突然使用尽然报错了,在本地chrome,firefox等其他的浏览器都是好的,唯独ie报错了。在服务器的时候,尽然chrome也是报错的。

问题原因

出现这个错误的主要原因是,在本地上传图片的时候HttpPostedFileBase对象里面保存的FileName仅仅是文件的名称而已

而部署服务器上的时候上传FileName却是你本地上传的物理路径,也就是本地完整的路劲,如下图

解决问题

所以导致我们在执行如下代码的时候会报错

                fileName = imgLogo.FileName;

                string type = fileName.Substring(fileName.LastIndexOf(".") + ).ToLower();
if (!ValidateImg(type))
{
ErrorModel errorModel = new ErrorModel("imgLogo", "只能上传图片文件!");
ViewBag.errorModel = errorModel;
return View(config);
}
//全路劲,导致这里的server.mappath得到的服务器路劲其实错误了,所以下面的saveas会直接报错
var path = Server.MapPath("~/images/" + fileName); imgLogo.SaveAs(path);

既然知道原因了,那么解决起来也就很简单了,处理一下fileName就好了,代码如下

         //只需要在这里截取出文件名称就好了
fileName = imgLogo.FileName.Substring(imgLogo.FileName.LastIndexOf("\\") + 1); ; string type = fileName.Substring(fileName.LastIndexOf(".") + ).ToLower();
if (!ValidateImg(type))
{
ErrorModel errorModel = new ErrorModel("imgLogo", "只能上传图片文件!");
ViewBag.errorModel = errorModel;
return View(config);
}
//全路劲,导致这里的server.mappath得到的服务器路劲其实错误了,所以下面的saveas会直接
var path = Server.MapPath("~/images/" + fileName); imgLogo.SaveAs(path);

The given path's format is not supported.的更多相关文章

  1. IE报错:The given path's format is not supported

    在使用FileUpload控件进行上传EXCEL文件时,本地调试上传无问题,但是发布之后报地址无效错误 一.出现这个错误的主要原因是,在本地上传图片的时候HttpPostedFileBase对象里面保 ...

  2. This file's format is not supported or you don't specify a correct format. 解决办法

    string path = @"c:\请假统计表.xlsx"; Workbook workBook = new Workbook(); workBook.Open(path); A ...

  3. RSA key format is not supported

    对接支付宝时,提示RSA错误 : 请仔细检查 : 创建支付对象时,关键字参数的名字 如果公私钥是以拼接路径的方式传递给AliPay,正确的关键字参数的名字应该如下 :

  4. os.getcwd()、sys.path[0]、sys.argv[0]和__file__的区别,终于弄清楚了

    os.getcwd().sys.path[0].sys.argv[0]和__file__的区别 要分清这几个的区别与使用条件,实际测试一下是最准确的. 设计测试方法: 一个主模块用来运行,一个子模块用 ...

  5. String.format和MessageFormat.format的对比用法

    1.MessageFormat.format import java.text.MessageFormat; /** * Created by SYJ on 2017/9/13. */ public ...

  6. Hadoop官方文档翻译——MapReduce Tutorial

    MapReduce Tutorial(个人指导) Purpose(目的) Prerequisites(必备条件) Overview(综述) Inputs and Outputs(输入输出) MapRe ...

  7. 转:SDL2源代码分析

    1:初始化(SDL_Init()) SDL简介 有关SDL的简介在<最简单的视音频播放示例7:SDL2播放RGB/YUV>以及<最简单的视音频播放示例9:SDL2播放PCM>中 ...

  8. OpenStack Keystone安装部署流程

    之前介绍了OpenStack Swift的安装部署,采用的都是tempauth认证模式,今天就来介绍一个新的组件,名为Keystone. 1. 简介 本文将详细描述Keystone的安装部署流程,并给 ...

  9. 《OD学hadoop》第二周0703

    hdfs可视化界面: http://beifeng-hadoop-01:50070/dfshealth.html#tab-overview yarn可视化界面: http://beifeng-hado ...

随机推荐

  1. 终于有了自己的园子,Happy一下

    终于找到了一个比较好的写博客的地方,cnblogs,不错,我想你正是我所需要的功能!这是开山以来的第一篇文章,终于有了自己的园子,Happy一下.

  2. ORACLE 查看数据库中有哪些表

    SELECT TABLE_NAME FROM USER_TABLES ORDER BY TABLE_NAME;

  3. linux内核设计与实现--进程管理

    进程就是出于执行期的程序.进程的另一个名字是任务. 执行线程,简称线程(thread),是在进程中活动的对象.每个线程都有一个独立的程序计数器.进程栈和一组进程寄存器.内核调度的对象是线程,而不是进程 ...

  4. [Java] java中的异常处理-续

    异常处理器,它由try, catch, finally以及随后的程序块组成.finally不是必须的. catch的括号有一个参数,代表所要捕捉的异常的类型.catch会捕捉相应的类型及其衍生类.tr ...

  5. linux secureCRT utf-8编码显示

    secureCRT 会话选项-终端-外观-字符编码: 下拉选择UTF-8 关闭当前secureCRT,另开一个新的让设置生效,显示正常.

  6. C# BackgroundWorker的使用【转-http://www.cnblogs.com/tom-tong/archive/2012/02/22/2363965.html】

    BackgroundWorker 可以用于启动后台线程. 主要的事件及参数: 1.DoWork——当执行BackgroundWorker.RunWorkerAsync方法时会触发该事件,并且传递DoW ...

  7. SQL字符串分组聚合(分组后的数据查询后用逗号隔开)

    )) , 'aa') , 'bb') , 'aaa') , 'bbb') , 'ccc') go , , '') from tb group by id

  8. C语言实现词频统计——第二版

    原需求 1.读取文件,文件内包可含英文字符,及常见标点,空格级换行符. 2.统计英文单词在本文件的出现次数 3.将统计结果排序 4.显示排序结果 新需求: 1.小文件输入. 为表明程序能跑 2.支持命 ...

  9. [SQL]CASE用户数据统计

    create table tb(id int ,class varchar)--class种类就只有三种,如果不固定就需要存储过程来实现 insert tb ,'a' union all ,'a' u ...

  10. 倍增法lca

    ][N],siz[N];//rt数组需要在dfs之前置-1. void dfs(int pos,int deep){ dep[pos]=deep; siz[pos]=; for(edge *it=ad ...