iOS-приложение с Flask - PullRequest
0 голосов
/ 06 июля 2018

Я пытаюсь загрузить изображение, которое мое приложение iOS записывает во Flask, - я получаю ошибку HTTP 500, происхождение которой я не понимаю.

Вот мой код:

from flask import Flask
from flask_restful import reqparse, Api, Resource
from flask import request

app = Flask(__name__)
api = Api(app)

@app.route('/')
def projects():
    file = None
    if request.method == "POST":
        file = request.files['file']

    if file:
         img = Image.open(file)
         print("Image successfully loaded.")

    return render_template("home.html")

app.run(debug=True)

и для iOS:

func uploadImage(image: UIImage) -> Void{
        //Convert the image to a data blob
        guard let png = UIImagePNGRepresentation(image) else{
            print("error")
            return
        }

        //Set up a network request
        let request = NSMutableURLRequest()
        request.httpMethod = "POST"
        request.url = NSURL(string: "http://127.0.0.1:5000/") as! URL as! URL
        request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
        request.setValue("\(png.count)", forHTTPHeaderField: "Content-Length")
        request.httpBody = png
        // Figure out what the request is making and the encoding type...

        //Execute the network request
        let upload = URLSession.shared.uploadTask(with: request as URLRequest, from: png) { (data: Data?, response: URLResponse?, error: Error?) -> Void in
            //What you want to do when the upload succeeds or fails
        }

        upload.resume()

    }

override func viewDidLoad() {
    super.viewDidLoad()

    let img = UIImage(named: "messi.jpg")
    uploadImage(image: img!)

}

Есть идеи?

Любая помощь будет оценена. Спасибо!

Редактировать: ошибка на сервере, которую я получаю, - "builtins.UnboundLocalError UnboundLocalError: локальная переменная 'file', на которую ссылается до назначения", но если я исправлю это, я получу "jinja2.exceptions.TemplateRuntimeError: многократно расширенный."

Сообщение, которое я получаю в Xcode: «715863 + 0900 swiftServer [6240: 329748] [] nw_socket_output_finished shutdown (8, SHUT_WR) [57: сокет не подключен]"

1 Ответ

0 голосов
/ 06 июля 2018

Вы должны увидеть сообщение об ошибке на стороне колбы.

HTTP 500 означает «Внутренняя ошибка сервера» , и это означает, что ошибка вашего флеш-приложения на данный момент. Возможно, вы найдете подробные сообщения об ошибках на консоли вашего сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...