正在验证django中的Upload文件



这里我使用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;
}    

最新更新