await Request.Content.ReadAsMultipartAsync(provider);
项目里面多处用到session,包括在其他类库中通过HttpContext获取Session对象,在await之后,直接访问Session均为空了。
怎么办,文件得上传啊。
网络搜索无果,后来发现HttpContext竟然支持Set方法,那么在await之前存储HttpContext的引用,在await之后将引用再赋给HttpContext,这样似乎就通了。
测试后通过,完美运行。
var context = System.Web.HttpContext.Current;
await Request.Content.ReadAsMultipartAsync(provider);
System.Web.HttpContext.Current = context;
转载于:https://www.cnblogs.com/blogzhang/p/8066084.html
原文链接:
http://www.cnblogs.com/blogzhang/p/8066084.html
首先给出正确和错误做法,然后对比这两种做法。1正确的做法public class AvaterController : BaseApiController{[
Http
Post] public
async
Task UploadAvater(int userId) { AvatarBLL pictureBLL = new AvatarBLL(this.Request); a
wait
pictureB...
将
ASP.NET
升级到
ASP.NET
Core之后,相信大家都会遇到
Http
Context
.Current无法使用的
问题
。这也是我们迁移
ASP.NET
Core必须解决的
问题
。
本文我们详细讨论一下,使用
Http
Context
的正确姿势。
先列一下使用
Http
Context
的具体场景:
1. 在Controller层
访问
Http
Context
2. 在
中
间件
中
使用
Http
Context
3. 在数据
访问
层使用
Http
Context
4. 在后台线程
中
访问
Http
C..
builder.RegisterType<Adapter>().As<IAdapter>().InstancePer
Http
Request();
然后,我有一段
异步
代码,在其
中
解析Adapter组件。
以下代码已简化
Task<
Http
ResponseMessa...
在项目
中
使用
异步
(
async
a
wait
)的时候发现一个现象,
Http
Context
.Current为null,导致一系列的
问题
.
上网查了一些资料后找到了一个对象: System.Threading.Synchronization
Context
(提供在各种同步模型
中
传播同步上下文的基本功能。),跟踪代码后发现Synchronization
Context
.Current 返回...
<form id="form1" runat="server" method="post" action="
http
://localhost:2951/api/TechShare/PostFormData" enctype="mult
ipa
rt/form-data">
<div>
对于迟到的答案我很抱歉,但是我们解决了这个
问题
(我忘了我没有在这里上传答案).基本上我们所做的就是在临时位置调用ReadAsMult
iPa
rt
Async
方法,然后从请求
中
提取出其他参数.之后,我们验证了输入并将文件从临时移动到永久位置.如果你想看到代码,这对我们的例子是有效的,我相信它很简单,以适应任何工作
情况
:在客户端,我们有以下形式(是的,这个实现是为了演示目的,只支持发送一个文件…也是,输入...
在
ASP.NET
Web api
中
,接收mult
ipa
rt/form-data文件,我们可以使用Mult
ipa
rtFormDataStreamProvider来保存图片
[
Http
Post,Route("api/Job/newJob")]
public
async
Task<I
Http
ActionResult> PostNewJob()
前端页面代码:上传$(document).ready(function () {$("#btnUpload").click(function () {var formdata = new FormData();var files = $(".file_control");$.each(files, function (index, domEle) {formdata.append("file" +...
前几天调查
ASP.NET
WebApi 实现 mult
ipa
rt/form-data 文件上传功能时,遇到一个
问题
正好记录下来。mult
ipa
rt/form-data 经常用于多附件上传,其
中
数据是以 boundary 进行分割,形如:紧接着 boundary 的是该部分数据的描述。形如:咳咳,有点跑题了。因为要用 java 实现客户端上传,先看看 java 实现:
if(Request.Content.IsMimeMult
ipa
rtContent()){ var streamProvider =newMult
ipa
rtMemoryStreamProvider(); var task =Request.Content.ReadAsMult
ipa
rt
Async
(streamProvider).ContinueWith(t =&...
webapi开发
中
,经常会使用mult
ipa
rt/form-data方式来实现文件的上传。而网上流传甚广的就是下面这样一份代码。但是,这份代码有个
问题
,就是初始化Mult
ipa
rtFormDataStreamProvider类或者子类时,需要制定文件的保存路径。但是,有些应用场景是无法指定这个路径的,比如由于安全
问题
不允许直接进行文件的写入。有时候,甚至没必要指定这个路径,因为只需要读取传递过来的文
public
async
Task<I
Http
ActionResult> FileUpload()
if (!Request.Content.IsMimeMult
ipa
rtContent())
return StatusC...
对于迟到的答案我很抱歉,但是我们解决了这个
问题
(我忘了我没有在这里上传答案).基本上我们所做的就是在临时位置调用ReadAsMult
iPa
rt
Async
方法,然后从请求
中
提取出其他参数.之后,我们验证了输入并将文件从临时移动到永久位置.如果你想看到代码,这对我们的例子是有效的,我相信它很简单,以适应任何工作
情况
:在客户端,我们有以下形式(是的,这个实现是为了演示目的,只支持发送一个文件…也是,输入...
在一个项目
中
,为了系统执行效率更快,把一个经常用到的数据库表通过dataset放到Application
中
,发现在
异步
实现
中
每一次都会出现
Http
Context
.Current为null的异常,后来在网上查了好多资料,发现问这个
问题
的人多,回答的少,回答的也多数都是:引用System.Web,不要用
Http
Context
.Current.Application应该用System.Web.
Http
C