我正在使用以下代码保存上传的图像:

using (var fileStream = File.Create(savePath))
{
   stream.CopyTo(fileStream);
}

当图像保存到目标文件夹时,它是空的,0 kb.这里可能出了什么问题?我已经查过了.复制前的长度,且其不为空.

推荐答案

你的代码没有问题.你说"我已经判断了流.复制前的长度,它不是空的",这让我想知道复制前的stream position.

如果您已经使用了源流一次,那么尽管该流的长度不是零,但它的位置可能在流的末尾,因此没有什么可复制的了.

如果流是可搜索的(对于MemoryStreamFileStream和许多其他类型的流),请try 放置

stream.Position = 0

就在复印件之前.这会将流位置重置为开头,这意味着整个流将被代码复制.

Asp.net相关问答推荐

如何在 ASP.NET 全球化中配置不变文化?

如何从 dll 文件中提取类的源代码?

如何在 C# 代码中获取当前项目名称?

将 null 转换为字符串的函数

多个 DataContext 类是否合适?

IIS 7.5 上没有 asp.net 功能

为什么 Asp.Net Identity IdentityDbContext 是一个黑盒?

如何在同一解决方案中从 MVC 项目调试 Web API 项目

为应用程序池Classic .NET AppPool提供服务的进程与 Windows 进程激活服务发生了致命的通信错误

从 IFrame 重定向父页面

在 ApiController 中添加自定义响应头

缩小 ASP.Net MVC 应用程序的 HTML 输出

如何使div按钮提交其所在的表单?

Windows Azure PaaS(网络角色)的真正替代品?

ASP.NET MVC 路由的无限 URL 参数

IIS - 无法通过 ip 地址而不是 localhost 访问页面

如何将我的 Autofac 容器插入 ASP. NET 身份 2.1

如何在服务器控件属性中使用 ASP.NET <%= 标签?

在 ASP.NET 中获取服务器的 IP 地址?

Session.Clear() 与 Session.RemoveAll()