Swift: Content-Disposition появляется в источнике изображения при загрузке с alamofire - PullRequest
0 голосов
/ 15 января 2020

Я загружаю файл изображения на сервер 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: form-data; Name = "файл"; filename = "uploading.png"

Тип содержимого: image / png

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

Ответы [ 2 ]

0 голосов
/ 21 января 2020

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

0 голосов
/ 16 января 2020

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

1.Проверьте, хорошо ли изображение перед загрузкой в ​​azure.

2.При загрузке введите azure с помощью кода, проверьте, можете ли вы просматривать правильное содержимое изображения на портале azure (В azure portal -> хранилище больших двоичных объектов -> щелкните изображение ->, затем выберите Edit).

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

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

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

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

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