Приведенный выше код работает отлично, когда я изменил это:
AF.upload(
multipartFormData: { multipartFormData in
multipartFormData.append(data, withName: "image", fileName: "image.jpeg", mimeType: "image/jpeg")
на:
AF.upload(
multipartFormData: { multipartFormData in
multipartFormData.append(data, withName: "file", fileName: "image.jpeg", mimeType: "image/jpeg")
Замена «изображения» на «файл» все исправила. Я выбрал «имидж», потому что это то, что я мог найти в каждом учебнике по Alamofire. Однако RocketChat требует, чтобы он был «файловым». Это есть в документации, но я не понимал, что он мне велел делать. В частности, в документации сказано:
"Примечание. Для некоторых типов файлов при загрузке через curl вам может потребоваться установить тип mime. Для некоторых типов файлов curl загрузит файл как application / octet- Вы можете передать настраиваемый тип mime следующим образом: -F "file=@file.wav;type=audio / wav" "
Я пробовал -F" image=@file.wav;type=audio / wav "при переводе из Alamofire. Это должно быть: -F "file=@file.wav;type=audio / wav"