如何安全地读取 ASP.NET 中的流?

2024-03-27

byte[] bytes = new byte[uploader.UploadedFiles[0].InputStream.Length];
uploader.UploadedFiles[0].InputStream.Read(bytes, 0, bytes.Length);

var storedFile = new document();
string strFullPath = uploader.UploadedFiles[0].FileName;
string strFileName = Path.GetFileName(strFullPath);

storedFile.document_id = Guid.NewGuid();
storedFile.content_type = uploader.UploadedFiles[0].ContentType;
storedFile.original_name = strFileName;
storedFile.file_data = bytes;
storedFile.date_created = DateTime.Now;
db.documents.InsertOnSubmit(storedFile);
db.SubmitChanges();

If:

通过一次 Read 调用从流中读取数据是非常危险的。您假设所有数据都将立即可用,但情况并非总是如此。您应该始终循环读取,直到没有更多数据为止。

我应该如何更改上面的代码以使其“不那么危险”?


Jon Skeet 实际上有一篇非常好的博客文章,介绍了人们尝试阅读 Streams 的所有不同方式以及为什么每种方式都被破坏了(它以他认为是理想的解决方案结尾):

C# 读取二进制数据 https://jonskeet.uk/csharp/readbinary.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何安全地读取 ASP.NET 中的流? 的相关文章

  • 了解 ASP.NET Eval() 和 Bind()

    任何人都可以向我展示一些绝对最小的 ASP NET 代码来理解Eval and Bind 最好为我提供两个单独的代码片段或者可能是网络链接 对于只读控件 它们是相同的 对于 2 路数据绑定 使用要在其中通过声明性数据绑定更新 插入等的数据源
  • 在 C# 中读取并发送 mp4 文件

    我使用以下代码从服务器读取 mp4 文件并通过 http 发送它 我的服务器端是 mvc4 控制器 有趣的是 视频在 Chrome 中渲染得很好 但在 ios 设备上没有得到任何东西 所以我认为这可能是响应流标头问题 我缺少什么吗 var
  • C++变量声明和初始化规则

    考虑以下声明和初始化类型变量的方法C C c1 C c2 c2 C C c3 C C c4 C 所有这些是否完全等同 或者其中一些可以根据确切的定义而有所不同C 假设它有公共默认值和复制构造函数 这些意味着 C c1 default con
  • VS Code 不会构建具有多个 .cpp 源文件的 C++ 程序

    请注意 我在 Ubuntu 17 10 上使用 VS Code 并使用 GCC 编译器 我在构建一个使用附加 cpp 文件的简单程序时遇到问题 我可能在这里遗漏了一些明显的东西 因为我对编程相当陌生 但我会解释到目前为止我所做的事情 这阻止
  • 课程完成时更新外部数据库

    我的场景 Moodle 中的用户完成了一门课程 一旦发生这种情况 我想更新外部数据库 我的理解是 每次运行 cron 作业时都会触发 course completed 事件 使用一些简单值 例如已完成课程的用户名 ID 课程 ID 以及完成
  • 为什么sql表名中通常使用下划线而不是驼峰式大小写[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 有丰富的领域模型示例吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个简单的示例来说明使用富域模型的好处 理想情况下 我想要一个之前和之后的代码列表 应该尽可能
  • 如何在 Mac 上的 Sublime Text 2 上运行 C++?

    我尝试在 Mac 上的 Sublime Text 2 上用 C 运行 hello world I typed include iostream int main cout lt lt Hello WOrld return 0 但这给了我一个
  • L"" 和 u8"" 之间的区别

    以下有什么区别吗 auto s1 L 你好 auto s2 u8 你好 Are s1 and s2指的是同一类型 如果不是 有什么区别以及首选哪一个 它们不是同一类型 s2是 UTF 8 或窄字符串文字 这C 11标准草案 http www
  • 如何结束用户会话并确保用户已注销?

    我是 aspx 的新手 现在的问题是 因为我正在做一个支持网络的项目 所以我从用户那里登录了 我拖放登录模板 然后使用 Session Authentication username Tostring 存储当前登录用户的信息等 现在我什至使
  • 什么是排列索引?

    我正在阅读 加速 C 我不明白练习 5 1 设计并实现一个程序 根据以下输入生成排列索引 排列索引是其中每个短语由短语中的每个单词索引的索引 The quick brown fox jumped over the fence The qui
  • 如何编辑 .csproj 文件

    当我使用 NET Framework 4 0 MSBUILD EXE 文件编译 csproj 文件时 出现错误 在 website01 csproj 的当前上下文中找不到 lable01 实际上 我需要添加每个 ASP NET 页面及其代码
  • 链接的 ostream 内部行为及其在 MSVC 上的结果(与 Clang 相比)

    MSVC 与 GCC Clang 的流 内部字符串和操作排序问题 大家好 我最近刚刚开始更认真地使用 MSVC 来完成我的一个跨平台项目 同时通过以下方式测试输出chainedSTD 流 IE 一系列的obj foo lt lt endl
  • ARM + gcc:不要使用一大块 .rodata 部分

    我想使用 gcc 编译一个程序 并针对 ARM 处理器进行链接时间优化 当我在没有 LTO 的情况下编译时 系统会被编译 当我启用 LTO 时 使用 flto 我收到以下汇编错误 错误 无效的文字常量 池需要更近 环顾网络 我发现这与我系统
  • 为数据提供有效类型是否会产生副作用?

    假设我有一大块动态分配的数据 void allocate size t n void foo malloc n return foo 我希望使用指向的数据foo作为一种特殊类型 type t 但我想稍后再这样做 而不是在分配期间这样做 为了
  • 尝试返回 IQueryable 时发生转换错误

    我有一个查询应该返回IQueryable
  • 有没有办法获取正在运行或新打开的资源管理器窗口的 IExplorerBrowser 接口以供后续 BrowseToXXX 调用?

    这么问是因为在上一个问题 https stackoverflow com questions 6220899 answer 6221898我是指向 IExplorerBrowser 的指针 但是它创建了一个子窗口 而我想模拟资源管理器的 查
  • 如何在类库中添加配置文件,后跟 .NET Core 1.1 的连接字符串

    我正在开发 n 层应用程序 其中有数据访问层 它独立于任何其他应用程序 我已经为 NET Core 1 1 创建了类库 我可以看到依赖项文件夹 但看不到任何配置 JSON 文件 我想知道 我可以在类库项目中添加 AppSetting JSO
  • 如何在 c# ASP.Net 中创建具有有效 JSON 输出的 JSON WebService 并使用 JQuery/Ajax 进行查询

    我创建了一个时间 2019 03 17 标签 c ASP NetJSONWebService 但是我在从这个 WebService 读取数据时遇到了很大的麻烦 因为在我看来输出不是有效的 JSON 格式 通常你应该得到一个 对象 对象 作为
  • ASP.net kerberos 偶尔下降到 NTLM

    背景 仅相关部分 我们有一个大型 Intranet asp net 2 0 3 5 应用程序 Web服务器是AD域上的Windows Server 2003 客户端使用 Windows IE 6 8 Windows 身份验证 具有从 Win

随机推荐

  • QT后台进程进行键盘输入嗅探

    我正在开发一个简单的应用程序 该应用程序将在后台运行并捕获用户的键盘输入 如键盘记录器 但用于 LAN 我正在发送 UDP 数据包来传输击键 但从后台进程捕获键盘输入的问题似乎仍然无法解决 所以需要帮助 如果您想在 Windows 上执行此
  • 子类化 NSNumber

    我想向 NSNumber 类添加一个属性 因此我必须对其进行子类化 文档指出我必须重写所有 NSValue 原始方法 由于 NSValue 文档没有说明哪些方法是原始方法 所以我认为这两个可能是实例化的原始方法 initWithBytes
  • 将文本表转换为 pandas 数据框

    很多时候 当我尝试回答 Stackoverflow 上的问题时 问题包含一个表 我必须将其转换为 pandas 数据框才能进行处理 例如 在这个问题中 http stackoverflow com questions 43172116 pa
  • 使用验证器 jQuery 验证 Click 事件上的表单

    我正在使用 jQuery validate 来验证输入 我的代码 button click function form validate rules phone required true number true rangelength 7
  • 测试 Google Analytics iOS SDK

    有人找到了在 iOS 上测试 Google Analytics 的好方法吗 SDK 非常简单 但文档没有讨论如何测试或验证 该库在模拟器上或运行调试构建配置时的行为是否有所不同 我使用此委托方法设置了委托 GANTrackerDelegat
  • 紧凑框架中的网络浏览器

    我想用一个WebBrowser NET Compact Framework 3 5 项目中的组件 我面临着关于此的相互矛盾的信息 如果我只是尝试使用它 我会得到以下异常 System Threading ThreadStateExcepti
  • 椭圆弧箭头边缘d3力布局

    我正在使用强制布局来创建有向图 它渲染在画布上 我的示例位于http jsbin com vuyapibaqa 1 edit html 输出 http jsbin com vuyapibaqa 1 edit html output 现在我的
  • 无法在 DayNight 主题中动态切换模式

    我在我的应用程序中实现了 DayNight 主题 并添加了一个在白天和夜间模式之间切换的设置 但如果不重新启动 我无法在模式之间动态切换 如果我使用setDefaultNightMode 设置更改后 设置活动不会更改模式 但后台堆栈中的活动
  • VS Code 中的 SQL 调试

    我已经在 Windows 上安装了 VS code 工具并探索其功能 到目前为止 我想说它是一个很棒的工具 与传统的 SSMS 相比 它具有一些很酷的功能 我面临的困难是 在 VS Code 中使用 debug 当我单击调试时 它会在活动栏
  • C:执行 {...} while(0)? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么 C C 宏中有时会出现无意义的 do while 和 if else 语句 https stackoverflow com questions 154136 why are there som
  • 为什么 SQL Server 2008 Management Studio Intellisense 不工作?

    我正在疯狂地试图找出为什么智能感知根本无法工作 我使用的服务器是本地的 并且是 2008 年的 数据库设置为 2008 兼容性 智能感知在我能找到的每个菜单中都打开 但即使使用 CTRL J 也不会弹出任何成员列表 有没有人经历过类似的事情
  • Chrome Timeline 开发工具中的图像解码时间

    我正在构建一个视差滚动网站 不是我们所有人吗 除其他外 它会在用户滚动时显示图像 我通过将图像放在背景中并在顶部放置一个实心填充的 div 来完成 显示 然后 我根据滚动位置将该 div 从 100 高度设置为 0 高度 从而显示背景图像
  • 是否可以在 ng 服务之前和 Angular 7 中的实时重新加载/自动重新加载之前运行自定义脚本?

    在从 Angular cli 启动 ngserve 命令之前以及在 Angular 实时重新加载 自动重新加载之前 我必须运行自定义脚本吗 除了修改 package json 之外 是否可以使用 Angular 7 找你的package j
  • 如何为实际使用数据库上下文的 ASP.NET Core 控制器编写单元测试?

    关于如何编写良好的单元测试的信息似乎很少actualASP NET Core 控制器操作 关于如何使这项工作真正发挥作用有什么指导吗 我有一个系统 现在似乎运行得很好 所以我想我应该分享它 看看它是否能帮助其他人 有一个实体框架文档中非常有
  • Neo4j 3.0 中的存储过程

    我在 Windows 上使用 neo4j 3 0 并尝试使用存储过程新功能 我已经构建了 apoc jargithub 来源 https github com neo4j contrib neo4j apoc procedures 该 ja
  • R ggplot2:如何绘制具有纯色和透明笔触并根据颜色着色的geom_points?

    我想制作一个散点图 其中每个点都有一个球体 点及其球体都根据某些列值着色 一个显示我想要的最小示例 library ggplot2 library vcd only needed for example dataset ggplot Art
  • c、unix 中的睡眠函数

    我需要导入什么才能在unix中使用睡眠功能 我知道windows 是windows h 但是unix 呢 它应该位于 unistd h 中 请注意 这只能提供整数秒的精度 亚秒精度最便携的方法应该是 ab 使用 select
  • node.js:在全局范围内使用“this”令人困惑

    我最近一直在玩弄node js 并且遇到了关于使用的奇怪行为this在模块的全局范围内 this在全局范围内绑定到 module exports console log this exports gt true But this在方法范围内
  • 模块“QtQuick.Dialogs”版本 1.3 未安装

    我正在尝试在运行 1 2 版时没有任何问题的代码中导入 QtQuick Dialogs 1 3 版 但是在运行时我收到以下错误 模块 QtQuick Dialogs 版本 1 3 未安装 我正在使用默认的 Desktop Qt 5 9 2
  • 如何安全地读取 ASP.NET 中的流?

    byte bytes new byte uploader UploadedFiles 0 InputStream Length uploader UploadedFiles 0 InputStream Read bytes 0 bytes