ben*_*rre 5 java file-upload apache-commons-fileupload
有两种方法可以使用Apache FileUpload Library.
上传文件
http://commons.apache.org/fileupload/using.html
和Streaming FileUpload API
http://commons.apache.org/fileupload/streaming.html
它们都很好用,除了流API在处理流之前似乎没有办法检查fileSize.
这是因为Streaming API从根本上不知道文件大小,还是因为我需要手动读取一些标题或其他内容来获取Multipart上传大小?
Bal*_*usC 14
在不占用整个HTTP请求主体的情况下,无法知道多部分请求的一部分的大小.一旦消耗了HTTP请求主体,就不能停止中途使用它了.它必须被消耗,直到可以返回响应之前的最后一个字节.这只是HTTP和TCP/IP的本质.为了保持较低的服务器内存使用率,您可以在超过大小时丢弃读取的字节(即在读取循环内检查它并且不将它们分配给任何变量).
最好的办法是在上传之前用JavaScript验证文件长度.支持 HTML5 FileAPI的浏览器支持此功能.当前版本的Firefox,Chrome,Safari,Opera和Android都支持它.IE9还不支持它,它将在未来的IE10中使用.
<input type="file" ... onchange="checkFileSize(this)" />
Run Code Online (Sandbox Code Playgroud)
当checkFileSize()是这个样子
function checkFileSize(inputFile) {
var max = 10 * 1024 * 1024; // 10MB
if (inputFile.files && inputFile.files[0].size > max) {
alert("File too large."); // Do your thing to handle the error.
inputFile.value = null; // Clear the field.
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8651 次 |
| 最近记录: |