我正在创建一个新线程来提出这个问题,因为我已经尝试过我找到的所有解决方案,但似乎并不适用于我。我想输出存储在media子目录中的pdf文件。 @Compadre建议了一些链接,这些链接确实帮助我理解了文件系统在python中的工作方式,但是线程中提供的解决方案无效。我想输出以下目录结构中的文件:
media/QuestionPapers/filename.pdf
输出文件的查看功能是:
def Display(request, file_name):
File_Name = file_name.replace('_', ' ')
file_path = os.path.join(settings.MEDIA_ROOT, 'QuestionPapers',File_Name)
with open(file_path,'rb') as pdf:
response = HttpResponse(pdf.read(), content_type = 'application/pdf')
response['Content-Disposition'] = 'attachment; filename=some_file.pdf'
return response
当我做的时候
return HttpResponse(os.path.join(settings.MEDIA_ROOT, 'QuestionPapers',File_Name))
它返回我想要输出的文件的绝对路径但是当我在我的代码中使用路径时如上所示我得到的是错误:
[Errno 2] No such file or directory: 'C:\\Users\\majmaj\\projects\\qbank\\Scripts\\QuestionBank\\media\\QuestionPapers\\filename.pdf'
目录和文件确实存在,因为当我执行http://127.0.0.1:8000/media/QuestionPapers/myfile.pdf
时,文件已打开,但我不知道为什么open()
即使文件路径正确<{1}}也无法正常工作
所以我应该看看这个并告诉我我做错了什么,我坚持这个问题并且让我疯狂。这是第五天,仍然没有解决方案