问题标签 [httppostedfilebase]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc - 当参数为模型时,ASP.NET MVC 发布文件模型绑定
有没有办法让发布的文件 ( <input type="file" />
) 参与 ASP.NET MVC 中的模型绑定,而无需手动查看自定义模型绑定器中的请求上下文,也无需创建仅将发布的文件作为输入的单独操作方法?
我原以为这会起作用:
但考虑到上述情况,MyFile
它甚至不是绑定上下文中值提供者值的一部分。(OtherProperty
当然是。)但如果我这样做,它会起作用:
那么,为什么当参数是模型时没有发生绑定,我怎样才能让它工作呢?我对使用自定义模型绑定器没有任何问题,但是如何在自定义模型绑定器中执行此操作而不查看Request.Files["MyFile"]
?
为了一致性、清晰性和可测试性,我希望我的代码能够自动绑定模型上的所有属性,包括绑定到已发布文件的属性,而无需手动检查请求上下文。我目前正在使用Scott Hanselman 所写的方法测试模型绑定。
还是我以错误的方式解决这个问题?你会如何解决这个问题?或者由于 Request.Form 和 Request.Files 之间的分离历史,这是设计上不可能的?
asp.net-mvc - 为什么 HttpPostedFile 不像宣传的那样执行并将下载缓冲到磁盘而不是内存?
我正在使用<input>
发布多部分表单数据的标准 HTML 控件将大文件上传到 ASP.NET 服务器。这是一个 ASP.NET MVC 应用程序。
根据 MSDN,HttpPostedFile
开箱即用的类缓冲到磁盘:
“文件以 MIME multipart/form-data 格式上传。默认情况下,所有大于 256 KB 的请求(包括表单字段和上传的文件)都缓存到磁盘,而不是保存在服务器内存中。”
我假设这意味着当我HttpPostedFileBase
在我的控制器中访问时,当我访问HttpPostedFileBase
'InputStream
属性时,我可以将文件缓冲区写入某处,而不必担心服务器内存不足,这显然是一个不可行的解决方案。
下面是一些伪代码,说明我如何处理来自HttpPostedFileBase
.
我的 web.config 的 httpRuntime 块如下所示:
我的实现工作正常,多个文件按预期上传,但服务器消耗了缓冲整个有效负载所需的相同内存量。我必须假设 InputStream 正在缓冲所有内容。当我上传的文件多于我的内存时,它可以预见地以OutOfMemoryException
. 这是上传 800mb 文件时内存峰值的图像。
我知道我可以使用 Flash/Silverlight 小部件或编写自定义来拦截上传并自己处理它们,但如果按照MSDN 所说的(或者我做错了)HttpModule
,当前的要求将完美地工作。HttpPostedFile
image - 如何将 HttpPostedFileBase 转换为图像?
我正在使用 ASP.NET MVC,并且我有一个上传文件的操作。文件正在正确上传。但我想要图像的宽度和高度。我想我需要先将其转换HttpPostedFileBase
为Image
然后继续。我怎么做?
如果有另一种更好的方法来获取图像的宽度和高度,请告诉我。
asp.net-mvc - 谷歌浏览器中的 ASP.Net MVC 图像上传失败
我有一张图片上传表格
回帖到动作
该代码适用于除 Google Chrome 之外的所有浏览器。我的 IDE 是 Visual Studio 2k8,我还没有弄清楚如何使用它在 Google Chrome 上进行调试,但是,我抛出了错误消息,而且我知道由于某种原因在 chrome 下,以下检查没有通过:
显然,在 Chrome 下,HttpPostedFileBase 参数图片编码不正确并且丢失了它的 mime 类型,但是,这可能不是唯一的问题。Chrome下的HttpPostedFileBase参数有什么问题,我该如何解决?
感谢您的关注,并提前感谢您的帮助。
asp.net-mvc - 模型绑定 HttpPostedFileBase,然后将文件存储到数据存储区
ASP.NET MVC 似乎正确地在 HTML 表单的文件输入字段和 HttpPostedFileBase 之间自动绑定。另一方面,它不能从文件输入字段绑定到字节数组。我试过了,但它发出了异常——一些关于无法转换为 Base64 的问题。以前我的模型类上只有字节数组属性,因为后来我需要它来将对象序列化为 XML 文件。
现在我想出了这个解决方法,它工作正常,但我不确定这是否可以:
c# - 当我尝试在 ASP.NET MVC 中上传文件时,它显示为 null
由于某种原因,参数OriginalLocation
始终null
在以下代码中。我究竟做错了什么?
控制器:
看法:
模型:
asp.net-mvc - ASP.NET MVC 文件上传
你好呀,
我的模型(部分)
我的行动
文件上传器
我遇到的问题是,当按下 AddDocument 按钮时,它会将一个空模型传递给我的控制器中的操作。HttpPostedFileBase 中的基本属性会给出 System.NotImplementException。
谁能告诉我我需要做什么才能正确地将我的模型传递给我的动作?
asp.net - ASP.NET MVC 将模型 *together* 与文件一起传回控制器
好的,我已经做了几个小时了,我根本找不到解决方案。
我想从我的用户那里得到一些数据。所以首先,我使用一个控制器来创建一个接收模型的视图:
然后,我有这样的看法:
最后 - 原始控制器,但这次配置为接受数据:
该控制器的其余部分无关紧要,因为无论我做什么,(or ) 的count
属性都保持为 0。我根本找不到从表单传递文件的方法(模型通过就好了)。Request.Files
Request.Files.Keys
c# - 如何对包含静态方法的方法进行单元测试?
这可以做到吗?这是我正在测试的方法:
在我的单元测试中,我正在使用 Rhino.Mocks 并且我想验证 _file.SaveAs() 是否被调用。我已经模拟了 _file(它是一个 HttpPostedFileBase 对象)并将其注入到该方法的类构造函数中。我想运行这个单元测试,但实际上并没有进行 Directory.CreateDirectory 调用。这可能吗?
asp.net-mvc - System.IO.Stream 支持 HttpPostedFileBase
我有一个允许会员上传照片的网站。在 MVC 控制器中,我将 'FormCollection
作为 Action 的参数。然后我将第一个文件读取为 type HttpPostedFileBase
。我用它来生成缩略图。这一切都很好。
除了允许会员上传自己的照片外,我还想自己使用System.Net.WebClient
导入照片。
我试图概括处理上传照片(文件)的方法,以便它可以采用通用 Stream 对象而不是特定的HttpPostedFileBase
.
我试图基于 Stream 的所有内容,因为它HttpPostedFileBase
有一个InputStream
包含文件流的属性,并且WebClient
有一个OpenRead
返回 Stream 的方法。
但是,通过使用 Stream over HttpPostedFileBase
,看起来我正在丢失用于验证文件的属性ContentType
。ContentLength
以前没有使用过二进制流,有没有办法从流中获取ContentType
和ContentLength
?或者有没有办法HttpPostedFileBase
使用 Stream 创建一个对象?