我在燒瓶中創建了一個文件夾和路徑,如下面的代碼所示:def add_video(form_video, loc, foldername1, foldername2): filename = secure_filename(form_video.filename) if len(filename) < 0: return False; randon_hex = secrets.token_hex(8) _, f_ext = os.path.splitext(filename) video_fn = randon_hex + f_ext #filename """ create vide upload folder for each course uploaded by a user""" if loc == 'v_uploads': video_path = os.path.join(current_app.root_path, 'static\\stylesheets\\v_uploads\\' + str(foldername1) + '\\' + str(foldername2), video_fn ) os.makedirs(os.path.dirname(video_path), exist_ok=True) form_video.save(video_path) """ size = os.stat(video_path).st_size """ return video_fn這適用于我計算機上的本地主機。但是當站點使用 unicorn 和 nginx 遠程部署時,它沒有創建文件夾 stylesheets/v_uploads/john/python/video.mp4,而是創建了一個名為“static\stylesheets\v_uploads\john\video”的文件夾。我的意思是上傳路徑沒有正確創建。我究竟做錯了什么 ?
1 回答

BIG陽
TA貢獻1859條經驗 獲得超6個贊
遠程主機正在運行 Linux,其中\
不是目錄分隔符;它是文件名中的有效字符。所以它按照你的要求做了,并創建了那個文字文件名。
更改您的join()
調用以分別傳遞每個組件,它將正確組裝路徑,使用主機操作系統的適當目錄分隔符:
video_path = os.path.join(current_app.root_path, 'static', 'stylesheets', 'v_uploads', str(foldername1), str(foldername2), video_fn)
添加回答
舉報
0/150
提交
取消