ファイルのパスをTextractというライブラリに渡すことができません。ここでアップロードされたファイルのファイルパスを取得するにはどうすればよいですか?
def file_to_string(filepath):
text = textract.process(filepath)
print text
return text
models.py
class File(models.Model):
filename = models.CharField(max_length=200)
file = models.FileField(upload_to='files/%Y/%m/%d')
upload_date=models.DateTimeField(auto_now_add =True)
status = models.CharField(max_length=200)
def __unicode__(self):
return self.filename
今すぐTextractがfile_to_string(filepath)
に行くためのパスを期待
views.py
if request.method == 'POST':
upload_form = UploadFileForm(request.POST, request.FILES)
if upload_form.is_valid():
file = request.FILES['file']
filetosave = File(file=file, filename=file.name)
filetosave.save()
if validate_file_extension(file):
request.session['text'] = file_to_string(file) # something in here
else:
upload_form=UploadFileForm()
で私のアップロードフォームです。ファイルオブジェクトを渡そうとすると、エラー番号
"coercing to Unicode: need string or buffer, InMemoryUploadedFile found"
が返されます。
しかし、InMemoryUploadedFileタイプの場合、パスを取得するにはどうすればよいですか?私はこれがメモリに保存されており、パスがないことを理解しています。
これをどのように処理する必要がありますか?まずファイルオブジェクトを保存してからアクセスしようとしますか? ファイルを保存してからrequest.session['text'] = file_to_string(file.name)
を試してみるとMissingFileError
となりますが、ドキュメントではMEDIA_ROOTからの相対パスを含むファイル名を指定する必要があります。
ありがとうございます。
同様にあなたのモデルを提示してくださいトリックを行う必要があります。 – sebb
'request.session ['text'] =ファイル_to_string(fileobj.file)' –
@SebastianBurzyński、ありがとう、モデルが追加されました。 – aaravam