我可以做些什么来限制可以上传的文件的大小?我知道我可以使用 SWFUpload 限制它的客户端,但是如何限制它的服务器端呢?
如何防止有人上传 1GB 文件并吃光我的配额?
我可以做些什么来限制可以上传的文件的大小?我知道我可以使用 SWFUpload 限制它的客户端,但是如何限制它的服务器端呢?
如何防止有人上传 1GB 文件并吃光我的配额?
App Engine 1.5.4 SDK引入了一个选项来指定 Blob 上传大小的限制。
参见UploadOptions类。maxUploadSizeBytes
_maxUploadSizeBytesPerBlob
您不能禁止人们上传太大的文件(尽管这会是一个很好的功能请求)。您可以做的是检查上传的 blob 的大小,如果太大则立即删除它。
在调用数据存储 API 之前,将下面的代码放在您接收数据的 serlet 中。
// Determine the HTTP method
long maxSize = 1024*1024 * 50; //Limit 50 MB
boolean isPostMethod = request.getMethod().equals("POST");
// Verify the content length
int contentLength = request.getContentLength();
if (isPostMethod && (contentLength < 0 || contentLength > maxSize))
//posted data size is not in acceptable range
else {
// Process Data
}