c# - 上传时检查文件大小的推荐方法

标签 c# http file-upload web http-headers

我正在开发一个支持文件上传的网络应用程序。我已经熟悉在服务器端检查大小,但我想在客户端检查文件大小。

我知道这是一个浏览器限制,出于安全原因我们无法访问文件属性。所以我尝试了 swfupload 和 uploadify 组件。两者都很好,可以满足需求。

但限制是两者都取决于闪存,所以如果我的最终用户没有安装闪存,那么我就会遇到问题。要求他们安装 Flash 是另一回事,但它是一个门户网站,用户群很大。所以我不喜欢让他们安装 Flash 的想法。

今天我在 gmail 中发现了文件上传功能。并在没有安装 Flash 的情况下在浏览器 (IE) 中对此进行了测试。我的发现很有趣。如果你上传一个大文件,他们会进行回传并立即返回文件大小太大的消息。

这怎么可能,他们如何在不下载全部内容的情况下找到文件的大小。?我相信这必须通过读取 HTTP header 信息来完成。我说得对吗?

所以这正是我想要实现的功能。如果已经安装了闪存,我可以使用 uploadify 来检查大小,否则我可能会实现谷歌使用的从未听说过的技术。

有人可以推荐我怎么做吗?

有没有人遇到过类似的问题,你做了什么??

更新:

在FF中安装flash的Gmail上传

alt text

在 IE 中没有 flash

alt text

最佳答案

你可以看看 File API这是 HTML 5 的草稿。这是一个 nice article .这就是Gmail uses如果浏览器当然支持它。但无法确保这适用于所有浏览器。

关于c# - 上传时检查文件大小的推荐方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4204249/

相关文章:

c# - 为什么接口(interface)在 IL 级别作为 "abstract interface"发出?

c# - ViewModel 在 MVVM Light 中没有收到消息

c# - 使用 Webclient 获取对 url 的请求会抛出异常,但如果在浏览器中打开它则工作正常

Http 缓存 - style.css?123 或 style_123.css?

java - Java 中的分块 http 解码?

java - 如何删除目录中上传的相同文件?

c# - 回发后 FileUpload 为空

c# - asp :dropdownlist doesn't save users selected value c# asp. 净aspx

http - Nginx 无法在端口 80 上工作

php - 一种适合处理大量文件上传的技术