2016-09-07 17 views
2

我想上传一个excel文件在烧瓶中,并给它一个新的名字时保存,如:oldname.xlsxnewname.xlsx烧瓶 - uploadnotallowed错误 - 重命名文件时要保存

这是到目前为止我的代码:

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的名称PARAM,所以它会与该变量的名称保存。我从烧瓶上传文档的name PARAM,但我得到一个“uploadnotallowed”错误

enter image description here

我想知道如果我不遵循该save功能正确的格式,或者我的配置是不正确设置。我是烧瓶新手,所以我仍然在学习这个很酷的Web框架。在此先感谢

回答

0

好的,发现我的错误。变量file_new_name = 'dataexcel'需要有扩展名,在这种情况下为.xlsx分机。所以变量应该是file_new_name = 'dataexcel.xlsx'

save功能应该看起来像这样 - >filename = docs.save(filestorage, None, file_new_name)None是子文件夹,如果要传递子文件夹,只需将其更改为static/upload/dist