PDFファイルをdjango形式でアップロードしています。
しかし、ファイルの内容を読み取ってチェックし、有効でない場合はエラーメッセージを表示して、pdfファイルの検証を実行する必要があります。
しかし、ファイルを読み取ってテストを実行できるように、pdf ファイルの場所を取得する方法を見つけることができません。
最初に一時的な場所に保存してから、検証を行ってからファイルを削除したくありません
ファイルに対してシステム コマンドを実行できるように、必要なのはファイルのパスだけです。
PDFファイルをdjango形式でアップロードしています。
しかし、ファイルの内容を読み取ってチェックし、有効でない場合はエラーメッセージを表示して、pdfファイルの検証を実行する必要があります。
しかし、ファイルを読み取ってテストを実行できるように、pdf ファイルの場所を取得する方法を見つけることができません。
最初に一時的な場所に保存してから、検証を行ってからファイルを削除したくありません
ファイルに対してシステム コマンドを実行できるように、必要なのはファイルのパスだけです。
以下の例は、django ドキュメントの基本的なファイルのアップロードの例に基づいています。この例では、pdf ファイルの検証を行い、有効かどうかに基づいて true/false を返す check_pdf という関数を使用できます。それに応じて、ユーザーを成功または無効な pdf ページにリダイレクトします。これが最も簡単な方法です。フォーム API を使用すると、さらに多くのことができ、特定のエラー メッセージを表示できます。
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})