質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

0回答

441閲覧

画像のアップロード後リネーム処理(複数の関数を順番に実行する方法)

study_ing

総合スコア12

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/11/06 15:18

画像のアップロード後リネーム処理

pythonの勉強を始めて2週間ほどの初心者です。説明が下手ですが、ご教示いただきたくお願いします。
最終的にはカメラで撮った写真をアップロードして、元ファイルから削除、アップロードしたファイルは撮影した内容によって決められた名前にリネーム(複数ファイルアップロードしたときは連番)してファイル名によってそれぞれ所定のフォルダへ移動させるというプログラムにしたく、まずはローカルにて、変数を入れずにシンプルに下記のとおり組みました。
①画像をピクチャからアップロード(現在はローカルフォルダ)
②ピクチャから画像を削除
③ユーザーにはアップロード完了画面(ブラウザ)
④裏では画像をリネームしてフォルダへ移動

発生している問題・エラーメッセージ

④リネームしてフォルダ移動させるところでリネーム関数を作成しましたが、作成したアップロード関数ではブラウザを表示して終了してしまい、リネーム関数が動いていません。

該当のソースコード

python

1import os 2from flask import render_template, request, redirect, url_for, send_from_directory, make_response, jsonify 3from werkzeug import secure_filename 4from kirokuhojo import app 5 6UPLOAD_DIR = './aaa/static/uploads' 7ALLOWED_EXTENSIONS = set(['png', 'jpg', 'JPG']) 8app.config['UPLOAD_FOLDER'] = UPLOAD_DIR 9directory = 'C://Users/me/xxx/aaa/static/uploads/' 10new_directory = 'C://Users/me/xxx/aaa/uploads/' 11file_list = os.listdir(directory) 12 13 14def allowed_file(filename): 15 return '.' in filename and \ 16 filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS 17 18 19@app.route('/send', methods=['GET', 'POST']) 20def upload_multipart(): 21 if 'uploadFile' not in request.files: 22 make_response(jsonify({'result':'uploadFile is required'})) 23 upload_files = request.files.getlist('img_file') 24 for img_file in upload_files: 25 filename = secure_filename(img_file.filename) 26 img_file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) 27 os.remove('C://Users/me/Pictures/Camera Roll/' + filename) 28 img_url = '/static/uploads/' + filename 29 return render_template('entries/photo.html', img_url=img_url) 30 else: 31 return redirect(url_for('entries/photo')) 32 33 34def rename(): 35 a = 1 36 for file in file_list: 37 path = os.path.join(directory, file) 38 name = 'test'+str(a)+'.jpg' 39 target = os.path.join(new_directory, name) 40 os.rename(path, target) 41 a = a+1 42 43 44@app.route('/uploads/<filename>') 45def uploaded_file(filename): 46 return send_from_directory(app.config['UPLOAD_FOLDER'], filename) 47 48 49if __name__ == '__main__': 50 app.debug = True 51 app.run()

試したこと

アップロード関数の中に組み込んでみましたが、うまいことリネームされません。おそらくアップロード先(リネーム元)フォルダにファイルがないと認識されているのかと思います。
解決方法がありましたらご教示いただきたくよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gh640

2018/11/12 14:37

こちらは今も回答を求めてらっしゃいますか?それとも自己解決されましたか?回答を求めてらっしゃったら回答させていただこうと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問