我在烧瓶中创建了一个文件夹和路径,如下面的代码所示: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
提交
取消