这里我使用Django REST框架进行文件上传,我在Django中没有使用模型层。所以我使用default_storage来保存上传的文件。我的问题是如何验证这些文件。上传的文件不应超过10mb。提前感谢。
class imageapi(APIView):
def post(self, request):
if request.method == 'POST' and request.FILES['file']:
try:
form = UploadFileForm(request.POST, request.FILES)
#save_path = os.path.join(settings.MEDIA_ROOT, 'uploads', request.FILES['file'])
save_path = str(settings.MEDIA_ROOT)+ '/uploads/'+str(request.FILES['file'])
path = default_storage.save(str(save_path), request.FILES['file'])
return Response({default_storage.path(path)})
except Exception as ex:
return Response({"DATA": str(ex)})
1。django方式:
您可以这样检查表单中文件的大小:field_name.size
。这将返回以字节为单位的大小。
2.服务器方式:
您可以将前端服务器(Nginx、Apacher或任何您正在使用的服务器(配置为不接受超过10mb的文件。这种方法更好、更安全。
stackoverflow上的多个答案和官方文档建议在您的Web服务器上处理此问题。
如果使用nginx,可以使用http块中的client_max_body_size
来限制文件大小:
http {
...
client_max_body_size 10M;
}