2017-01-18 2 views
0

Ich versuche, mehrere Dateien mit Flask_restful hochzuladen, aber kann die Dateinamenliste in den Argumenten außer dem ersten Dateinamen nicht erhalten, wie kann ich die Dateiliste mit Argumenten erhalten?Wie lade ich mehrere Dateien mit flask_restful hoch?

hier ist mein Code,

from models import Server 
import werkzeug 
from werkzeug import secure_filename 
from settings import upload_folder,allowed_extensions,currentWorkingPath,os,sys,reqparse,Resource 
from settings import fields,marshal_with,abort 
from settings import redirect, url_for 


''' 
#######################################################Uploads API 
''' 
uploads_fields = { 
    'uri': fields.Url('uploads', absolute=True) 
} 


parser = reqparse.RequestParser() 
parser.add_argument('file', type=werkzeug.FileStorage, location='files',required=True) 

class Uploads(Resource): 
    @marshal_with(uploads_fields) 
    def post(self): 
     args = parser.parse_args() 

     print 'file',args 
     ...... 

was ich habe ist:

* Restarting with stat 
* Debugger is active! 
* Debugger pin code: 115-504-357 
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) 
file {'file': <FileStorage: u'simple_api-master.zip' ('application/octet-stream' 
)>} 
127.0.0.1 - - [18/Jan/2017 10:40:38] "POST /uploads/ HTTP/1.1" 200 - 

in der Tat die ich ausgewählt habe zwei Dateien simple_api-master.zip, simple_api-Master-old.rar und Wert übergeben Durch die post-Methode sollte die Druckfunktion u'simple_api-master.zip ', u'simple_api-master-old.rar' ausgeben, aber jetzt gibt es nur den ersten Dateinamen aus. Was soll ich tun, um die Dateiliste zu erhalten?

Antwort

0

Grundsätzlich fügen Sie einfach

action = 'append'

Ihr Code jetzt sein sollte: parser.add_argument('file', type=werkzeug.FileStorage, location='files',required=True, action='append')

Verwandte Themen