如何在django中对上传的文件执行验证

时间:2012-11-28 03:25:12

标签: python django forms file-upload

我正在以django形式上传pdf文件。

但是我需要通过读取文件的内容然后检查它是否在pdf文件上执行验证,如果它无效则会给出一些错误信息。

但是我无法找到如何获取pdf文件位置以便我可以读取文件并进行一些测试。

我不想先在临时位置保存,然后进行验证,然后删除文件

所有我需要的是文件的路径,以便我可以在文件上运行一些系统命令

1 个答案:

答案 0 :(得分:1)

以下示例基于django文档中的Basic file uploads示例。您可以在此示例中使用名为check_pdf的函数,该函数对pdf文件进行验证,并根据其是否有效返回true / false。根据您将用户重定向到成功或无效的pdf页面。这是最简单的方法。您可以使用表单apis执行更多操作并显示特定的错误消息。

from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response

def upload_file(request):
    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            if check_pdf(request.FILES['file'].name):
                return HttpResponseRedirect('/success/url/')
            else:
                return HttpResponseRedirect('/invalid_pdf/url/')
    else:
        form = UploadFileForm()
    return render_to_response('upload.html', {'form': form})