Swift: Content-Disposition появляется в источнике изображения при загрузке с помощью alamofire

Я загружаю файл изображения на сервер Azure с приведенным ниже кодом, который успешно загружает файл. (я вижу это на сервере)

self.manager.upload(multipartFormData: { (multipart) in
        
        multipart.append(fileData, withName: "file",fileName: "uploading.png" , mimeType: "image/png")
        
    }, to: url.description, method: .put, headers: ["x-ms-blob-type":"BlockBlob","Content-type": "multipart/form-data","Content-Disposition" :"form-data"]) { encodingResult in
        switch encodingResult {
        case .success(let upload, _, _):
            upload.response { answer in
                print("statusCode: \(String(describing: answer.response?.statusCode))")
                comp(true,"Documnet Uploaded Successfully")
            }
            
            upload.uploadProgress { progress in
                //call progress callback here if you need it
            }
        case .failure(let encodingError):
            print("multipart upload encodingError: \(encodingError)")
            comp(false,"Unable to Upload the documnet")
        }
}

Но когда я загружаю файл (вручную или по коду). Изображение не открывается. Это говорит

Он может быть поврежден или использовать формат файла, который не распознается Preview.

Когда я открываю файл в Блокноте. В каждом загруженном изображении вверху появляются строки ниже. Без этих строк файл "ОК". Я не знаю, почему они добавляются каждый раз автоматически.

--alamofire.boundary.5243a11a13e8a8f4

Content-Disposition: форма-данные; name="файл"; filename="uploading.png"

Тип содержимого: изображение /png

Пожалуйста, предложите решение.

2 ответа

Все работало нормально. Запрос, заголовки и все подряд. Проблема возникла из-за составного запроса. Это был простой запрос на загрузку фотографии или PDF-файла в лазурь, как и на FTP. Это не был многостраничный запрос.

Не прямой ответ, но вот несколько предложений, которые вы можете посмотреть.

1.Перед загрузкой в ​​лазурный убедитесь, что изображение в порядке.

2. При загрузке в Azure с помощью кода проверьте, можете ли вы просмотреть правильное содержимое изображения на портале Azure (на портале Azure -> хранилище BLOB-объектов -> щелкните изображение -> затем выберите "Изменить").

3. Я думаю, что основная причина может быть связана с неправильными заголовками запросов.

При загрузке изображения в Azure с помощью кода используйте такие инструменты, как fiddler, чтобы проверить заголовки запроса / ответа.

Затем вручную загрузил изображение в Azure, также используйте скрипач, чтобы проверить его заголовки запроса / ответа.

Затем вы можете сравнить заголовки (код и вручную), чтобы узнать, в чем разница, а затем вы можете внести соответствующие изменения в свой код.

Другие вопросы по тегам