Hızlı kullanarak görüntü ve video yükleme iOS uygulaması oluşturuyorum. Ağ istekleri için Alamofire kütüphanesini kullanıyorum. Kullanıcı bir görüntüye AşağıdaAlamofire tarafından gönderilen multipart/form-data isteği işleminde Swift, in Hapijs backend
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
dismissViewControllerAnimated(true, completion: nil)
guard let image = info[UIImagePickerControllerOriginalImage] as? UIImage else {
print("Did not get required image")
return
}
guard let imageData = UIImageJPEGRepresentation(image, 0.8) else {
return
}
Alamofire.upload(.POST, "http://localhost:8101/upload_request", multipartFormData: {
multipartFormData in
multipartFormData.appendBodyPart(data: imageData, name: "image")
}, encodingCompletion: {
encodingResult in
switch encodingResult {
case .Success(let upload, _, _):
upload.responseJSON(completionHandler: {
response in
debugPrint(response)
})
case .Failure(let encodingError):
print(encodingError)
}
})
}
Bu istek Hapijs
server.route({
method: 'POST',
path: '/upload_request',
config: {
payload: {
maxBytes: 10 * 1024 * 1024,
output: 'stream',
parse: true,
allow: 'multipart/form-data'
}
},
handler: (request, reply) => {
var data = request.payload;
if (data.image) {
var filePath = 'new_image.jpg';
// data.image has data but is not of Stream.Readable
} else {
console.log('No data file');
}
}
});
Sorun request.payload alamıyorum edilir işlenme şeklinden yoludur seçtiğinde Aşağıda Swift çalışır koddur Arka uçta bir akış olarak, bu yüzden bir writeStream oluşturamıyorum ve bunu writeStream'e pipetleyemiyorum. Yanlış bir şey mi yapıyorum yoksa hiçbir şey eksik mi? Verileri okumak ve dosya sistemindeki bir görüntü dosyası olarak yazmak için ne yapmalıyım?
Bu
ben cevap buldu request.payload.image����JFIFHH��LExifMM*�i&��� ��8Photoshop 3.08BIM8BIM%��ُ��� ���B~��@ICC_PROFILE0ADBEmntrRGB XYZ �3;acspAPPLnone���-ADBE
cprt�2desc0kwtpt�bkpt�rTRC�gTRC�bTRC�rXYZ�gXYZbXYZtextCopyright 2000 Adobe Systems IncorporateddescAdobe RGB (1998)XYZ �Q�XYZ curv3curv3curv3XYZ �O��XYZ 4��,�XYZ &1/���� �"��
Rota işleyicide 'console.log (request.payload)' dan ne elde edersiniz? Çok fazla çıktıysa soruna kesilmiş bir versiyon ekleyebiliriz. –
Hey Matt .. request.payload.image dosyasında alınan verilerin başlangıç bitlerini ekledim. Alınan yük büyüktür. –