我需要将图像文件上传到某个文件夹。它在localhost上工作正常,但如果我将应用程序推送到heroku,它会告诉我:
IOError: [Errno 2] No such file or directory: 'static/userimg/1-bild-1.jpg'
这意味着它无法找到该文件夹?
我需要在那里存储图像文件几秒钟才能对主题执行一些操作。之后,他们将被发送到AWS,并将从文件夹中删除。
这是我将图像保存到文件夹中的代码:
i = 1
for key, file in request.files.iteritems():
if file:
filename = secure_filename(str(current_user.id) + "-bild-"+ str(i) +".jpg")
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
i = i + 1
稍后我从文件夹中获取文件:
for item in os.listdir(os.path.join(app.config['UPLOAD_FOLDER'])):
if item.startswith(str(current_user.id)) and item.split(".")[0].endswith("1"):
with open(os.path.join(app.config['UPLOAD_FOLDER'], item), "rb") as thefile:
data = base64.b64encode(thefile.read())
upload_image_to_aws_from_image_v3('MYBUCKET', "userimg/", data, new_zimmer, "hauptbild", new_zimmer.stadt, new_zimmer.id)
os.remove(str(thefile.name))
这是app config中的上传文件夹:
UPLOAD_FOLDER = "static/userimg/"
在localhost上一切正常。
答案 0 :(得分:0)
我必须添加目录的绝对路径,因为服务器上的路径不同。
您可以通过CLI为您的应用运行heroku run bash
,并使用dir
检查目录。然后使用cd ..
返回或cd *directory name*
进入目录。
我必须添加
MYDIR = os.path.dirname(__file__)
并替换所有
os.path.join(app.config['UPLOAD_FOLDER']
与
os.path.join(MYDIR + "/" + app.config['UPLOAD_FOLDER']
关于该主题的一些信息也在这里: Similar question