2017-11-07 2 views
0

ich eine JSON-Datei in der Flasche erholsamen Prahlerei api hochladen möchten, ist dies mein ParameterWie Datei in Kolben geruhsamen Prahlerei hochladen

parameters=[ 
     { 
      "name": "filename", 
      "description": "json file upload ", 
      "required": True, 
      "allowMultiple": False, 
      "dataType": "file", 
      "paramType": "body" 
     } 

I

Parser = reqparse.RequestParser() verwenden,

parser.add_argument ('Dateiname', type = str, location = 'args')

args = parser.parse_args()

print (args.filename)

die hochgeladene Datei-Namen zu erhalten, drucke ich es, aber es ist kein.

Wie kann ich eine Datei in flash restful Swagger API hochladen?

Vielen Dank!

Antwort

0

Ich habe dieses Problem zu lösen, hier zu schreiben:

Änderung

parser.add_argument ('Dateiname', type = str, location = 'args')

zu

parser.add_argument ('filename', type = werkzeug.datastructures.FileStorage, location = 'files')

aber man braucht zuerst ein Werkzeug zu importieren

dann können Sie Benutzer die Methode der werkzeug.datastructures.FileStorage Klasse

können es verwenden, von http://werkzeug.pocoo.org/docs/0.12/datastructures/

file = args.filename

filename = file.filename # upload file name

file.save (savePaths) #Sie können die Datei im Pfad speichern, den Sie speichern möchten #aber denken Sie daran, savePaths enthält den Dateinamen der Datei

Oder Sie können die folgende Methode verwenden Datei zu speichern:

Linien = file.read() #bytes Klasse

f = open (Dateiname, "wb") #New eine Datei aus und geben ihm den Dateinamen

f.write (Linien) #write Bytes

f.(Schließen)

und jetzt: Parameter = [ { "name": "Dateiname", "description": "dd", "erforderlich": Stimme, "allowMultiple": Falsch, " dataType ": 'Datei', " paramType ":" Körper " } ]