我在燒瓶中創(chuàng)建了一個(gè)文件夾和路徑,如下面的代碼所示: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這適用于我計(jì)算機(jī)上的本地主機(jī)。但是當(dāng)站點(diǎn)使用 unicorn 和 nginx 遠(yuǎn)程部署時(shí),它沒(méi)有創(chuàng)建文件夾 stylesheets/v_uploads/john/python/video.mp4,而是創(chuàng)建了一個(gè)名為“static\stylesheets\v_uploads\john\video”的文件夾。我的意思是上傳路徑?jīng)]有正確創(chuàng)建。我究竟做錯(cuò)了什么 ?
1 回答

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