Hier bin ich mit iOS XMPP-Bibliothek (https://github.com/processone/demo-xmpp-ios) für meine Chat-Anwendung, kann mir für das Hochladen von Bild helfen aus dieser library.thanksWie können wir Bilder oder Fotos auf den EJABBERD XMPP Webserver hochladen?
Antwort
Ich empfehle das Hochladen von Bildern würde auf den Server eines Dritten und dann die URL zu senden über XMPP.
Hier ist ein Beispiel mit Backendless, die 20 GB kostenlose Datei-Uploads bieten. Sie müssten auch die Backendless docs folgen ihren SDK und Setup, um die API-Schlüssel zu installieren:
[backendless.fileService.permissions grantForAllRoles:fileName operation:FILE_READ];
[backendless.fileService saveFile:fileName content:file response:^(BackendlessFile * file) {
// We have the url so we can send the message
} error:^(Fault * fault) {
}];
Oder an ein PHP-Server mit AFNetworking:
NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:_url parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileData:file name:@"upfile" fileName:name mimeType:mimeType];
} error:nil];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
NSURLSessionUploadTask *uploadTask;
uploadTask = [manager
uploadTaskWithStreamedRequest:request
progress:^(NSProgress * _Nonnull uploadProgress) {
// This is not called back on the main queue.
// You are responsible for dispatching to the main queue for UI updates
dispatch_async(dispatch_get_main_queue(), ^{
//Update the progress view
[progressView setProgress:uploadProgress.fractionCompleted];
});
}
completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) {
if (error) {
} else {
NSString *filePath = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
// Send message here
}
}];
[uploadTask resume];
Dann können Sie das Bild und Thumbnail-URLs hinzufügen und die Bildabmessungen auf die XMPP-Nachricht:
[xmppMessage addBody:imageURL];
[xmppMessage addAttributeWithName:bMessageImageURL stringValue:imageURL];
[xmppMessage addAttributeWithName:bMessageThumbnailURL stringValue:thumbnailURL];
[xmppMessage addAttributeWithName:bMessageImageWidth floatValue:width.floatValue];
[xmppMessage addAttributeWithName:bMessageImageHeight floatValue:height.floatValue];
ich würde empfehlen, den Körper auf die imageURL
Einstellung, so dass das Bild openenterpr werden könnte d von einem Standard-XMPP-Client.
Wenn die Nachricht empfangen wird, können Sie die Details wieder zugreifen, wie folgt:
NSString * imageURL = [[message attributeForName:bMessageImageURL] stringValue];
NSString * thumbnailURL = [[message attributeForName:bMessageThumbnailURL] stringValue];
float width = [[[message attributeForName:bMessageImageWidth] stringValue] floatValue];
float height = [[[message attributeForName:bMessageImageHeight] stringValue] floatValue];
Sie dann das Bild SDWebImage mit angezeigt werden kann.
Ich würde auch empfehlen ChatSDK, die eine vollständige Front-End-Messaging-Schnittstelle für iOS ist. Es enthält UITableView-Zellen zum Anzeigen von Bildnachrichten. Ich habe es verwendet, um einen XMPP-Messenger mit XMPPFramework zu erstellen.
- 1. Wie können Benutzer Bilder auf Wordpress hochladen?
- 2. XMPP SASL-Authentifizierung auf Ejabberd mit PHP
- 3. wie Sie Bilder auf einen Webserver hochladen. django
- 4. Hochladen von Derby Db auf den Webserver
- 5. Bild auf Webserver hochladen
- 6. swift3 - Bild auf Webserver hochladen
- 7. Wie können wir ein Laravel-Projekt auf Cloud9 hochladen?
- 8. XMPP libstrophe Client-Verbindung mit ejabberd
- 9. Hochladen eines Fotos auf meine Website
- 10. Wie lade ich Bilder auf den Webserver hoch?
- 11. iOS - Hintergrund hochladen von Fotos
- 12. Wie bekomme ich das aktuelle Zimmer von ejabberd/xmpp?
- 13. PHP - Fotos hochladen
- 14. Bilder auf Server hochladen
- 15. Wie XMPP erstellen (ejabberd) Benutzer mit XMPPHP Client
- 16. WordPress-Benutzer hochladen von Fotos ohne Erweiterungen
- 17. Können Sie Bilder mit Ajax hochladen?
- 18. * Alle * Fotos in Firebase hochladen
- 19. Anderen xmpp-Client für den Zugriff auf meinen Ejabberd-Server sperren
- 20. Wie können wir den Fehler schließen?
- 21. Hochladen von Fotos mit MEAN.js
- 22. Ordner auf lokalem (Benutzer-) PC scannen und alle Dateien (Bilder) auf Webserver hochladen
- 23. Können wir alle Fotos aus dem Google Drive holen?
- 24. Alamofire - Bild hochladen schlägt fehl, wenn Fotos
- 25. Wie können wir Strings zählen oder vergleichen?
- 26. PHP Auto Bilder hochladen
- 27. Chat App Android mit ejabberd 16 und XMPP
- 28. Wie kann ein Webserver solche Bilder machen?
- 29. Wie man WebRTC Anruf mit Hilfe von openfire xmpp oder ejabberd aufstellt?
- 30. Wie können Sie zwei Bilder gleichzeitig in Firebase Storage hochladen?
Ihre Antwort mag stimmen, aber die Frage ist markiert "swift", nicht "objective-c", also das ist eher off-topic ...:/ – Moritz
Ah ja, das habe ich nicht gesehen, da es nicht war Ist nicht im Titel angegeben. Ich werde versuchen, eine Swift-Version bereitzustellen. –
Die Sprache sollte * nie * im Titel sein, tatsächlich - ihr Platz ist in den Tags. Immer. // Vielen Dank. :) – Moritz