Flask:保存上载的文件时出现IOError

2024-04-29 08:42:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习Flask,并试图通过这里记录的上传文件模式来工作:http://flask.pocoo.org/docs/patterns/fileuploads/。我在Windows 7上的Firefox 12中工作,并在本地计算机上以调试模式运行我的应用程序。

我正在逐字复制示例,除了UPLOAD_FOLDER变量的值,我将其定义为UPLOAD_FOLDER = '/uploads',并创建了一个名为“uploads”的目录,该目录位于应用程序根目录(以及静态和模板目录)中。

上传文件时,我收到错误:IOError: [Errno 2] No such file or directory: '/uploads\\u.png'

有趣的是,如果我为uploads文件夹指定一个原始字符串,它直接指向我的机器上的上载,比如UPLOAD_FOLDER = r'C:\Python27\projects\Flask\myproject\uploads',那么一切都会正常工作。

我没有用正确的方式指定目录吗?上传目录应该放在别的地方吗?


Tags: 文件org目录应用程序httpflaskdocs记录
2条回答

为什么不试试这个,对我有用。

APP_ROOT = os.path.dirname(os.path.abspath(__file__))
UPLOAD_FOLDER = os.path.join(APP_ROOT, 'static/uploads')
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

“/uploads”开头的斜杠使路径规范成为绝对的:前面的斜杠表示文件系统层次结构的根。虽然这可能不完全是Windows上的工作方式,但Python这样理解它是有意义的,因为它的路径处理函数是跨平台的。

表单'uploads/'和'./uploads/'是等价的,它们是相对的。

请注意,相对路径是相对于当前目录的,您不必控制该目录,因此您可能需要指定上载文件夹的绝对路径。

相关问题 更多 >