重命名要保存的文件时,Flask uploadnotallowed错误

2024-06-16 14:46:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在flask中上传一个excel文件,并在保存时给它一个新的名称,比如:oldname.xlsx到{}。

以下是我目前为止的代码:

from flask import Flask, render_template, send_file, request, redirect, url_for
from flask_uploads import UploadSet, configure_uploads, DOCUMENTS, IMAGES
from remove_characters import get_csv, edit_data, cleanup_data
import re
import os

app = Flask(__name__)

#the name 'datafiles' must match in app.config to DATAFILES
docs = UploadSet('datafiles', DOCUMENTS)
app.config['UPLOADED_DATAFILES_DEST'] = 'static/uploads'
configure_uploads(app, docs)
file_new_name = 'dataexcel'

@app.route("/upload", methods = ['GET', 'POST'])
def upload():
#user_file is the name value in input element
if request.method == 'POST' and 'user_file' in request.files:
    filestorage = request.files['user_file']
    path = "static/uploads/" + filestorage.filename
    filename = docs.save(filestorage, name = file_new_name)


    return redirect(url_for('results', path = path))


return render_template('upload.html')

所以在save函数中,我将file_new_name传递给name param,因此它将与该变量名一起保存。{llowed>上传文件时出错

enter image description here

我想知道我是否没有遵循save函数的正确格式,或者我的配置没有正确设置。我刚接触烧瓶,所以我还在学习这个很酷的web框架。提前谢谢


Tags: pathnameinfromimportappflaskdocs
1条回答
网友
1楼 · 发布于 2024-06-16 14:46:57

好的,找到了我的错误。变量file_new_name = 'dataexcel'需要有扩展名,在本例中是.xlsxext,因此变量应该是file_new_name = 'dataexcel.xlsx'

save函数应该如下->;filename = docs.save(filestorage, None, file_new_name)None是子文件夹,如果要传递子文件夹,只需将其更改为static/upload/dist。在

相关问题 更多 >