Ram*_*Vel 12 c# file-upload http http-headers web
我正在开发一个支持文件上传的Web应用程序.我已经熟悉检查服务器端的大小,但我想检查客户端的文件大小.
我知道它的浏览器限制,出于安全原因我们无法访问文件属性.所以我尝试了swfupload和uploadify组件.两者都很好,满足需求.
但限制是取决于闪存,所以如果我的最终用户没有安装闪存,那么我最终会遇到问题.要求他们安装闪存是另一回事,但它是一个门户网站和用户群是巨大的.所以我不喜欢让他们安装flash的想法.
今天我遇到了gmail中的文件上传功能.并且在没有安装闪存的情况下在浏览器(IE)中进行了测试 我发现的很有趣.如果您上传了一个大文件,他们会进行回发并立即返回文件大小过大的消息.
如何实现,如何在不下载整个内容的情况下找到文件的大小.我相信这必须通过阅读HTTP标头信息来完成.我对吗?
所以这就是我想要实现的确切功能.如果已经安装了闪存,我可以使用uploadify来检查大小,否则可能是我将实现 - 从未听过的技术 - 谷歌使用.
谁能推荐我怎么做?
以前任何人都遇到过类似的问题,你做了什么?
更新:
使用FF安装的Flash上传Gmail

IE中没有flash

在IE中,您可以使用JS和ActiveX来完成:
function A()
{
var oas = new ActiveXObject("Scripting.FileSystemObject");
var d = document.a.b.value;
var e = oas.getFile(d);
var f = e.size;
alert(f + " bytes");
}
</script>
</head>
<body>
<form name="a">
<input type="file" name="b">
<input type="button" name="c" value="SIZE" onClick="A();">
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
经过大量搜索,我发现我们可以使用maxAllowedContentLength来限制 ASP.Net 应用程序中的上传大小。请记住,此设置仅适用于 IIS 7 或更高版本。
由于这是在 IIS 级别处理的,因此我们不需要在服务器代码中处理任何内容。如果超出大小限制,则会返回错误代码404.13。这样你就可以很容易地检查客户端的代码来确定问题所在。
如果客户端计算机上未安装闪存,这就是我处理大文件的方法。
希望这可以帮助某人。
有关此设置的更多信息,请阅读此内容
| 归档时间: |
|
| 查看次数: |
5098 次 |
| 最近记录: |