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, также используйте скрипач, чтобы проверить его заголовки запроса / ответа.
Затем вы можете сравнить заголовки (код и вручную), чтобы узнать, в чем разница, а затем вы можете внести соответствующие изменения в свой код.