我的web2py应用程序在pythonanywhere上找不到文件。
控制器:
def RA_download():
import os
path = os.path.join(request.folder,"uploads","ra.txt")
return dict(path=path)
查看
<a href="{{=path}}" download>Download ra.txt</a>
{{=BEAUTIFY(response._vars)}}
文件存在
但是当我点击链接时。它说“没有档案”
以下是该应用程序的链接
http://speakertgorobots.pythonanywhere.com/MCEdit/default/RA_download
答案 0 :(得分:1)
web2py不通过将操作系统文件路径指定为URL来提供文件。相反,您必须将文件放在应用程序的/static
文件夹中(并生成相对于该文件夹的URL)或通过控制器提供文件。
如果您将文件放在/static
文件夹的根目录中,则链接将如下所示:
<a href="{{=URL('static', 'ra.txt')}}" download>Download ra.txt</a>
如果要将文件保留在/uploads
文件夹(或其他位置),则需要创建一个控制器来为其提供服务。例如:
import os
def serve_ra_file():
return response.stream(os.path.join(request.folder, 'ra.txt'), attachment=True)
,链接将是:
<a href="{{=URL('default', 'serve_ra_file')}}" download>Download ra.txt</a>