2016-09-07 4 views
2

Ich versuche, eine Excel-Datei in Kolben hochladen und geben Sie einen neuen Namen beim Speichern, etwas wie: oldname.xlsx bis newname.xlsx.Flask - uploadnotallowowed Fehler - beim Umbenennen einer Datei zum Speichern

Hier ist mein Code so weit:

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') 

So in der save Funktion, ich bin vorbei file_new_name auf den Namen param, so wird es mit dem Variablennamen gespeichert werden. Ich habe die name param von Kolben Upload docs, aber ich erhalte einen ‚uploadnotallowed‘ Fehler

enter image description here

Ich frage mich, wenn ich nicht das richtige Format für die save Funktion folgenden bin oder meine Konfigurationen sind nicht richtig einrichten. Ich bin neu in Kolben, also lerne ich immer noch dieses coole Web-Framework. Vielen Dank im Voraus

Antwort

0

Ok, habe meinen Fehler gefunden. Die Variable file_new_name = 'dataexcel' muss die Erweiterung haben, in diesem Fall die .xlsx ext. Also sollte die Variable file_new_name = 'dataexcel.xlsx'

die save Funktion sollte so aussehen ->filename = docs.save(filestorage, None, file_new_name). None ist der Unterordner, wenn Sie einen Unterordner übergeben möchten, ändern Sie ihn einfach in etwa static/upload/dist.

Verwandte Themen