'SpooledTemporaryFile'对象没有属性'replace'

时间:2019-03-06 01:21:30

标签: flask upload

我正在使用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)

如何解决此错误?

1 个答案:

答案 0 :(得分:0)

我猜测data["url"]SpooledTemporaryFile对象,而不是字符串。如果没有完整的堆栈跟踪信息,我将无法判断是哪条线被倒刺,但是您可能需要将file_url = secure_filename(data["url"])更改为file_url = secure_filename(data["url"].filename)或类似的内容。