2017-06-23 30 views
0

特定のフォルダに画像ファイルをアップロードする必要があります。これは、ローカルホスト上で正常に動作しますが、私はHerokuのにアプリをプッシュするかどうかは私に語った:Python Flaskサーバー(heroku)のアプリケーションフォルダにファイルをアップロード

IOError: [Errno 2] No such file or directory: 'static/userimg/1-bild-1.jpg' 

それがフォルダを見つけるカント意味はどれですか?

テーマにいくつかのアクションを実行するには、イメージファイルを数秒間保存する必要があります。その後、それらはAWSに送信され、フォルダから削除されます。アプリの設定でアップロードフォルダです

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)) 

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 

後、私はこのようなフォルダからファイルを取得:私はフォルダに画像を保存するコードザッツ

UPLOAD_FOLDER = "static/userimg/"

すべてがローカルホスト上で正常に動作します。

答えて

0

サーバーのパスが異なるため、絶対パスをディレクトリに追加する必要がありました。

heroku run bashをCLI経由で実行し、ディレクトリをdirで確認できます。その後cd ..を使用して戻るか、cd *directory name*を使用してディレクトリに移動します。

私は

MYDIR = os.path.dirname(__file__) 

を追加し、

os.path.join(MYDIR + "/" + app.config['UPLOAD_FOLDER'] 

また、ここでのトピックに関するいくつかの情報をすべて

os.path.join(app.config['UPLOAD_FOLDER'] 

を交換しなければならなかった: Similar question

関連する問題