我的web2py应用程序在pythonanywhere上找不到文件

时间:2017-03-29 18:21:16

标签: web2py pythonanywhere

我的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)}}

文件存在

enter image description here

但是当我点击链接时。它说“没有档案”

enter image description here

以下是该应用程序的链接

http://speakertgorobots.pythonanywhere.com/MCEdit/default/RA_download

1 个答案:

答案 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>