HttpContext.Current.Server.MapPath("") 未将对象设置到引用的
时间:2019-11-06
本文章向大家介绍HttpContext.Current.Server.MapPath("") 未将对象设置到引用的,主要包括HttpContext.Current.Server.MapPath("") 未将对象设置到引用的使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在多线程中使用该方法获取目录报错:未将对象设置到引用
1 #region 上传图片到腾讯 2 public async Task<Result> UploadImageToWX(string background_pic_url) 3 { 4 var _result = new Result(); 5 var token = GetWxGhAuthorizerAccessToken(AbpSession.ShopId); 6 if (!token.success) 7 { 8 _result.Code = 0; 9 _result.Message = token.message; 10 return _result; 11 } 12 13 try 14 { 15 var filename = background_pic_url.Substring(background_pic_url.LastIndexOf('/')); 16 if (filename.LastIndexOf('.') < 0) 17 { 18 _result.Code = 0; 19 _result.Message = "图片错误"; 20 return _result; 21 } 22 var suffix = filename.Substring(filename.LastIndexOf('.')); 23 24 //报错代码 25 //string path = System.Web.HttpContext.Current.Server.MapPath("/upload/images/" + DateTime.Now.ToString("yyyyMM")); 26 27 //解决方案 28 string path = MapPath("/upload/images/" + DateTime.Now.ToString("yyyyMM")); 29 30 if (!Directory.Exists(path)) 31 { 32 Directory.CreateDirectory(path); 33 } 34 string file = path + "/" + Guid.NewGuid().ToString("n") + suffix; 35 36 Uri uri = new Uri(background_pic_url); 37 HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri); 38 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 39 Stream resStream = response.GetResponseStream();//得到图片数据流 40 Bitmap sourcebm = new Bitmap(resStream);//初始化Bitmap图片 41 sourcebm.Save(file); 42 43 var tokenResult = token.data as token_model; 44 45 var uploadResult = await Senparc.Weixin.MP.AdvancedAPIs.MediaApi.UploadImgAsync(tokenResult.token, file); 46 _result.Code = 1; 47 _result.Data = uploadResult; 48 } 49 catch (Exception ex) 50 { 51 52 _result.Message = ex.Message; 53 54 _result.Code = 0; 55 56 } 57 58 59 return _result; 60 } 61 #endregion
解决方法:
1 /// <summary> 2 /// 获取文件路径 3 /// </summary> 4 /// <param name="strPath"></param> 5 /// <returns></returns> 6 private string MapPath(string strPath) 7 { 8 if (HttpContext.Current != null) 9 { 10 return HttpContext.Current.Server.MapPath(strPath); 11 } 12 else //非web程序引用 13 { 14 strPath = strPath.Replace("/", "\\"); 15 if (strPath.StartsWith("\\")) 16 { 17 strPath = strPath.TrimStart('\\'); 18 } 19 return System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, strPath); 20 } 21 }
原文地址:https://www.cnblogs.com/WQ1992/p/11804047.html
- Docker容器学习梳理--web管理工具DockerUI部署记录
- Docker容器学习梳理-容器硬盘热扩容
- 检测到Loaderlock的问题
- 权威报告预测比特币在2018年“王位”不保
- Linux下FTP环境部署梳理(vsftpd和proftpd)
- Silverlight如何与JS相互调用
- Docker容器学习梳理--私有仓库Registry使用
- 从插件重构看如何提升测试质量与效率
- 巧用WinRAR+Javascript解决activeX的自动安装问题
- 在网页中实现QQ的屏幕截图功能
- Activity之间传递参数
- linux下rsync和tar增量备份梳理
- 重温Delphi之:面向对象
- Android新手之旅(15) Win7下配置遇到的问题
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 5分钟Flink - 时间与语义案例详解
- 5分钟Flink - 时间语义和Watermark
- 3. Pandas系列 - DataFrame操作
- 4. Pandas系列 - 基本功能和统计操作
- 面经手册 · 第8篇《LinkedList插入速度比ArrayList快?你确定吗?》
- 无所不能的Embedding 2. FastText词向量&文本分类
- 5. Pandas系列 - 重建索引
- 6. Pandas系列 - 迭代
- Java 虚拟机基础原理:功能,内存管理,类的加载机制,分析字节码执行过程
- Stack有性能问题?推荐用ArrayDeque队列!队列是什么?什么是双端队列、延迟系列、阻塞队列,全是知识盲区!
- 纯CSS实现照片墙效果
- Tungsten Fabric知识库丨构建、安装与公有云部署
- 7. Pandas系列 - 排序和字符串处理
- JVM调优,程序员必须掌握的知识
- 5分钟Flink - 侧输出流(SideOutput)