- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
鉴于以下代码非常通用,我希望有人能告诉我一些幕后发生的事情......
[HttpPost]
public ActionResult Load(Guid regionID, HttpPostedFileBase file)
{
if (file.ContentLength == 0)
RedirectToAction("blablabla.....");
var fileBytes = new byte[file.ContentLength];
file.InputStream.Read(fileBytes, 0, file.ContentLength);
}
具体来说,在调用我的操作方法之前文件是否已完全上传到服务器?或者是 file.InputStream.Read() 方法调用导致或等待整个文件上传。我可以对流进行部分读取并在上传文件时访问文件的“ block ”吗? (如果在调用我的方法之前上传了整个火灾,那么这一切都是没有意义的。)
任何人都可以向我指出一些有关内部运作的好信息吗?这里IIS6和II7有什么区别吗?
谢谢
最佳答案
在调用action方法之前,需要将while文件发送到服务器。引用自documentation :
Files are uploaded in MIME multipart/form-data format. By default, all requests, including form fields and uploaded files, larger than 256 KB are buffered to disk, rather than held in server memory.
You can specify the maximum allowable request size by accessing the MaxRequestLength property or by setting the maxRequestLength attribute of the httpRuntime Element (ASP.NET Settings Schema) element within the Machine.config or Web.config file. The default is 4 MB.
The amount of data that is buffered in server memory for a request, which includes file uploads, can be specified by accessing the RequestLengthDiskThreshold property or by setting the requestLengthDiskThreshold attribute of the httpRuntime Element (ASP.NET Settings Schema) element within the Machine.config or Web.config file.
服务器上不会消耗服务器内存,但文件内容将缓冲到磁盘。一旦客户端发送了整个文件,ASP.NET 管道将调用您的 Controller 操作,您可以分块读取请求流并将其保存到另一个文件,该文件将成为上传文件的最终位置。在文件上传完成之前无法调用该操作,因为 multipart/form-data
中可能有一些其他字段位于文件之后,在这种情况下不会分配它们。
关于asp.net - IIS asp.net mvc 部分?上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3722487/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!