在这里,我正在使用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)})
答案 0 :(得分:1)
1。 django方式:
您可以像下面这样检查表单中文件的大小:field_name.size
。这将返回字节大小。
2。服务器方式:
您可以配置前端服务器(Nginx,Apacher或您使用的任何设备),使其不接受超过10 mb的文件。这种方法更好,更安全。
答案 1 :(得分:0)
stackoverflow上有多个答案,官方docs建议在您的网络服务器上进行处理。
如果使用nginx,则可以通过使用http块中的 tempname = sb.ToString().Replace("\"", "");
{NodeName}.Nodes.Add(tempname);
来限制文件大小:
client_max_body_size