Загрузить изображение на мой сервер через PHP с помощью Swift

Я думаю, что положить это в файл settings.py - это не очень хорошая идея. settings.py должен содержать настройки .

Однако вы можете, например, добавить имя модели, чтобы ее можно было легко изменить. Итак, например:

# settings.py
MODEL_NAME = 'model'

Затем вы можете построить функцию, которая в основном действует как кеш, и периодически обновляет выборку модели:

# utils.py
from datetime import datetime, timedelta

from django.conf import settings

from pickle import loads as ploads

def get_model():
    if get_model.model is None or datetime.now() > get_model.exires:
        get_model.model = ploads(redis_connection.get(settings.MODEL_NAME))
        get_model.expires = datetime.now() + timedelta(hours=2)
    return get_model.model


get_model.model = None
get_model.expires= datetime.now()

Таким образом, функция проверяет, модель уже хранится в кеше и все еще действительна. В противном случае он извлекает (новую версию) модели и сохраняет ее. Преимущество такого подхода заключается в том, что если ваш сервер не получает запросы, связанные с моделью. Мы не загружаем и не загружаем новую систему в систему.

Альтернатива заключается в том, что где-то есть такой кеш и, например, планировать некоторую задачу в потоке для периодической выборки новой версии (так что не в se по необходимости , но превентивно ).

0
задан Mohammadreza Farahani 19 January 2019 в 22:43
поделиться

2 ответа

затем добавьте эту функцию в ваш код ...

func imagePickerController (_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: Any]) {если let img = info [UIImagePickerControllerOriginalImage] как? UIImage {

        self.imgProfileImage.image = img

        let imgData = UIImageJPEGRepresentation(img, 0.5)!

        let parameters = [String : Any]

        Alamofire.upload(multipartFormData: { multipartFormData in
            multipartFormData.append(imgData, withName: "Folder Name",fileName: "PicName.jpg", mimeType: "image/jpg")
            for (key, value) in parameters {
                multipartFormData.append((value as AnyObject).data(using: String.Encoding.utf8.rawValue)!, withName: key)
            } //Optional for extra parameters
        },
                         to:"Your API is Here.")
        { (result) in
            switch result {
            case .success(let upload, _, _):

                upload.uploadProgress(closure: { (progress) in
                    print("Upload Progress: \(progress.fractionCompleted)")
                })

                upload.responseJSON { response in
                    print(response.result.value)
                }

            case .failure(let encodingError):
                print(encodingError)
            }
        }

    }
    self.dismiss(animated: true, completion: nil)
}

func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
    self.dismiss(animated: true, completion: nil)
}
0
ответ дан Pratik Pandya 19 January 2019 в 22:43
поделиться

попробуйте это в вашем событии нажатия кнопки --->

    let alert = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)

    let addPhotos = UIAlertAction(title: "Choose Photo", style: .default) { (addPhoto) in
        self.imgPicker.sourceType = .photoLibrary
        self.imgPicker.allowsEditing = false
        self.present(self.imgPicker, animated: true, completion: nil)
    }

    let camera = UIAlertAction(title: "Camera Photo", style: .default) { (CameraPhoto) in
        self.imgPicker.sourceType = .camera
        self.imgPicker.allowsEditing = false
        self.present(self.imgPicker, animated: true, completion: nil)
    }

    let  cancel = UIAlertAction(title: "Cancel", style: .cancel) { (Cencel) in
        self.dismiss(animated: true, completion: nil)
    }
    alert.addAction(addPhotos)
    alert.addAction(camera)
    alert.addAction(cancel)


    self.present(alert, animated: true, completion: nil)
0
ответ дан Pratik Pandya 19 January 2019 в 22:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: