Flasche-RESTful – Bild hochladen

Ich habe mich gefragt, wie Sie Dateien hochladen, indem Sie einen API-Dienst erstellen?

class UploadImage(Resource): def post(self, fname): file = request.files['file'] if file: # save image else: # return error return {'False'} 

Route

 api.add_resource(UploadImage, '/api/uploadimage/<string:fname>') 

Und dann das HTML

  <input type="file" name="file"> 

Ich habe CORS auf der Serverseite aktiviert

Ich benutze angular.js als Front-End und ng-Upload, wenn das zählt, kann aber auch CURL-Anweisungen verwenden!

4 Solutions collect form web for “Flasche-RESTful – Bild hochladen”

Etwas auf den Zeilen des folgenden Codes sollte helfen.

  @app.route('/upload', methods=['GET', 'POST']) def upload(): if request.method == 'POST': file = request.files['file'] extension = os.path.splitext(file.filename)[1] f_name = str(uuid.uuid4()) + extension file.save(os.path.join(app.config['UPLOAD_FOLDER'], f_name)) return json.dumps({'filename':f_name}) 
 class UploadWavAPI(Resource): def post(self): parse = reqparse.RequestParser() parse.add_argument('audio', type=werkzeug.FileStorage, location='files') args = parse.parse_args() stream = args['audio'].stream wav_file = wave.open(stream, 'rb') signal = wav_file.readframes(-1) signal = np.fromstring(signal, 'Int16') fs = wav_file.getframerate() wav_file.close() 

Sie sollten den Stream verarbeiten, wenn es ein WAV wäre, funktioniert der Code oben. Für ein Bild sollten Sie auf der Datenbank speichern oder auf AWS S3 oder Google Storage hochladen

Folgendes ist genug, um die hochgeladene Datei zu speichern

  from flask import Flask from flask_restful import Resource, Api, reqparse import werkzeug class UploadAudio(Resource): def post(self): parse = reqparse.RequestParser() parse.add_argument('file', type=werkzeug.datastructures.FileStorage, location='files') args = parse.parse_args() audioFile = args['file'] audioFile.save("your_file_name.jpg") 

Sie können die Anfrage aus der Flasche verwenden

 class UploadImage(Resource): def post(self, fname): file = request.files['file'] if file and allowed_file(file.filename): # From flask uploading tutorial filename = secure_filename(file.filename) file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) return redirect(url_for('uploaded_file', filename=filename)) else: # return error return {'False'} 

http://flask.pocoo.org/docs/0.12/patterns/fileuploads/

  • Redirect auf Anmeldeseite, anstatt eine verbotene Nachricht anzuzeigen, wenn sie nicht angemeldet ist
  • Wie fügt man Felder URL für verschachtelte Ausgabefelder in der Klappe auf
  • Flasche - Löschen von Uploads, nachdem sie heruntergeladen wurden
  • Flask-admin is_accessible Nutzung
  • Calling Flasche erholsame API Ressource Methoden
  • Holen Sie sich die Abfrage Ausführungszeit in json Ausgabe
  • Wie man ein Feld nicht editierbar in Flask Admin-Ansicht einer Modellklasse macht
  • Flask Admin ModelAlle Felder zwischen CREATE und EDIT anzeigen
  • Flaschenansicht hebt TypeError: 'bool' Objekt ist nicht abrufbar
  • Wie kann man Flaschenerweiterungen manuell installieren?
  • Flasche sieht keine Änderung in .js-Datei
  • Python ist die beste Programmiersprache der Welt.