Python 如何获取上载文件的文件路径?
我很难将文件的路径传递到名为Textract的库Python 如何获取上载文件的文件路径?,python,django,django-models,django-uploads,Python,Django,Django Models,Django Uploads,我很难将文件的路径传递到名为Textract的库 def file_to_string(filepath): text = textract.process(filepath) print text return text 这是我在views.py中的上传表单 if request.method == 'POST': upload_form = UploadFileForm(request.POST, request.FILES) if upload_f
def file_to_string(filepath):
text = textract.process(filepath)
print text
return text
这是我在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()
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需要一个路径进入文件到字符串(filepath)
。如果我试图传入file对象,它会给我一个错误:“强制使用Unicode:需要字符串或缓冲区,找到InMemoryUploadedFile”
但是如果它是InMemoryPloadedFile类型,如何获取路径?我知道它存储在内存中,没有路径
我应该如何处理--我应该先保存文件对象,然后尝试访问它吗?
如果我保存文件,然后尝试
request.session['text']=file\u to\u string(file.name)
,它会给出一个MissingFileError
,尽管文档说这应该给出文件名,包括从媒体根目录的相对路径
非常感谢。尝试使用
文件到字符串(file.name)
文档:尝试使用
文件到字符串(file.name)
文档:
请求。会话['text']=文件到字符串(filetosave.file.path)
应该做这个把戏请求。会话['text']=文件到字符串(filetosave.file.path)
应该做这个把戏尝试请求。会话['text']=文件到字符串(fileobj.file)
@SebastianBurzy,谢谢,添加了models.request.session['text']=file_到_字符串(filetosave.file.path)应该执行以下操作trick@AvinashRaj谢谢,我试过了。但是request.session['text']=file\u to_string(filetosave.file)
给出了“强制使用Unicode:需要字符串或缓冲区,FieldFile找到了”`@SebastianBurzyński谢谢,成功了!如果你将评论作为回答,我很乐意接受。再次感谢!请尝试request.session['text']=file_to_string(fileobj.file)
@SebastianBurzyński,谢谢,添加了模型。request.session['text']=file_to_string(filetosave.file.path)应该执行以下操作trick@AvinashRaj谢谢,我试过了。但是request.session['text']=file\u to_string(filetosave.file)
给出了“强制使用Unicode:需要字符串或缓冲区,FieldFile找到了”`@SebastianBurzyński谢谢,成功了!如果你将评论作为回答,我很乐意接受。再次感谢!