我正在使用Flask制作网络来上传视频,添加了一个有效的视频,但是当我尝试编辑(替换)我上传的视频时,会有一个AttributeError: 'SpooledTemporaryFile' object has no attribute 'replace'
在forms.py
中,URL作为视频的路径:
url = FileField(
label="Video",
validators=[
Optional()
],
description="Video"
在views,py
中:
def movie_edit(id=None):
form = MovieForm()
form.url.validators = []
movie = Movie.query.get_or_404(int(id))
if form.validate_on_submit():
data = form.data
if not os.path.exists(app.config["UP_DIR"]):
os.makedirs(app.config["UP_DIR"])
os.chmod(app.config["UP_DIR"], "rw")
if data["url"] != "":
file_url = secure_filename(data["url"])
movie.url = change_filename(file_url)
form.url.data.save(app.config["UP_DIR"] + movie.url)
如何解决此错误?
答案 0 :(得分:0)
我猜测data["url"]
是SpooledTemporaryFile
对象,而不是字符串。如果没有完整的堆栈跟踪信息,我将无法判断是哪条线被倒刺,但是您可能需要将file_url = secure_filename(data["url"])
更改为file_url = secure_filename(data["url"].filename)
或类似的内容。