锁定老帖子 主题:java 限制附件上传大小
精华帖 (0) :: 良好帖 (0) :: 新手帖 (11) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-05-20
最后修改:2010-05-21
如何限制上传附件的大小 我尝试了市面上的附件限制 基本都是在文件流上传到服务器端的临时文件之后进行限制大小 并没有实际上限制 举个例子 如果我上传一个38G的 阿凡达 如果我的速度为500K/s 那么理论上服务器端将在1天之后告诉你 附近上传超过限制大小。。 现在想做出一种有效率的方法去限制大小 有没有谁 有过相关的开发思路。。。 这是我在javaeye上传一个 改成jpg后缀的一个win7的iso 2G多 点完浏览直接就 无法显示网页。。 我读取contentlength 的情况 我上传了一个win7的iso 2G 一个1K字的textarea 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-05-20
你可以尝试在接受单个文件超过限制的时候提示,这样就不必等文件都上传完再检查了
|
|
返回顶楼 | |
发表时间:2010-05-20
defty 写道 你可以尝试在接受单个文件超过限制的时候提示,这样就不必等文件都上传完再检查了
我说的就是单个文件超过大小 我说的等上传完也暂时指的是一个文件 。。 要是多个上传更麻烦。。(单个都没解决 就先不想多个的了。。) |
|
返回顶楼 | |
发表时间:2010-05-20
没办法。
用activex,falsh或者applet。 |
|
返回顶楼 | |
发表时间:2010-05-20
用控件的话就程序很不容易普及 客户端还要修改或安装某些插件。。
|
|
返回顶楼 | |
发表时间:2010-05-20
最后修改:2010-05-20
在分析数据流的时候就可以发现超过大小限制了。
比如你限制了文件大小为2m,当在上传到2m时你可以直接抛异常。 不需要等到文件全部上传完毕。 多个文件其实好解决,分析到 Content-Length 的时候就可以断开了。 Content-Type: multipart/form-data; boundary=---------------------------10199115674208 Content-Length: 347562961 -----------------------------10199115674208 Content-Disposition: form-data; name="action" edit -----------------------------10199115674208 Content-Disposition: form-data; name="id" 3 blah…blah…blah… |
|
返回顶楼 | |
发表时间:2010-05-20
如何分析数据流大小。。
详细说下把。。 |
|
返回顶楼 | |
发表时间:2010-05-20
request.getContentLength(); // 获取整体数据大小,如果你想判断所有文件大小之和用这个就够了。 request.getInputStream(); // 获取上传流 从上传流中获取到的数据可能如下(HttpUnit的filename会返回绝对路径,一般浏览器不会这么干): ----HttpUnit-part0-aSgQ2M Content-Disposition: form-data; name="bugFile"; filename="/uploadtest/bug.png" Content-Type: image/png PNG image content………… ----HttpUnit-part0-aSgQ2M Content-Disposition: form-data; name="email" Content-Type: text/plain; charset=iso-8859-1 some@example.Com ----HttpUnit-part0-aSgQ2M Content-Disposition: form-data; name="name" Content-Type: text/plain; charset=iso-8859-1 hello ----HttpUnit-part0-aSgQ2M-- 例如我们分析到 bug.png 的内容了也就是 Content-Type: image/png之后。 这时我们is.read多少字节就计算多少字节,当计算出来的字节数一超过限制就进行throw。 这样做不好的地方在于后面的字段也就不能分析了。 如果你单为了节约服务器资源,可以将超过的部分不写入临时文件。 格式详情参见:http://www.ietf.org/rfc/rfc1867.txt 网上分析上传流的代码很多……我就不见献丑了。 |
|
返回顶楼 | |
发表时间:2010-05-20
第三方控件:fileupload呢
|
|
返回顶楼 | |
发表时间:2010-05-20
用swfupload,flash上传组件,直接限制不能上传
|
|
返回顶楼 | |