Das Unternehmen lädt Bilder hoch. Das Serverpersonal sagte, dass Bilder über Bild-Streaming hochgeladen werden. Ich habe die folgenden Methoden ausprobiert, aber keine davon hat funktioniert:
[manager POST:@"http://xxxxxxxx:8094/interface_normal/editorFile/uploadImages.do" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
NSData* imageData = UIImageJPEGRepresentation(images[i], 0.5);
[formData appendPartWithFileData:imageData name:@"file" fileName:@"tupian.png" mimeType:@"image/png"];
} success:^(NSURLSessionDataTask *task, id responseObject) {
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:responseObject options:0 error:nil];
} failure:^(NSURLSessionDataTask *task, NSError *error) {
}];
Es gibt auch folgende Methoden:
NSData *data = UIImageJPEGRepresentation(image, 0.5f);
NSString *uploadUrl = [NSString stringWithFormat:@"%@editorFile/uploadImages.do", BASE_URL];
NSInputStream *imageStream = [[NSInputStream alloc] initWithData:data];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:uploadUrl]];
[request setHTTPMethod:@"POST"];
[request setValue:[NSString stringWithFormat:@"%ld", [data length]] forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/octet-stream" forHTTPHeaderField:@"Content-Type"];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.inputStream = imageStream;
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
completionBlock(responseObject, nil);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
completionBlock(operation.responseObject,error);
}];
[operation start];
Der Upload ist immer noch fehlgeschlagen, bitte helfen Sie mir, das Problem zu lösen
Das Hochladen von Bildern mit Charles zum Erfassen von Paketen auf Android ist wie folgt möglich:
Die Ergebnisse der Paketerfassung unter iOS sind wie folgt: Nach dem Ausprobieren vieler Methoden meldet der Server, dass der Upload fehlgeschlagen ist
Außerdem teilte mir der Server mit, dass er den Eingabestream auf diese Weise erhalten habe, aber der Eingabestream, den er von mir erhalten habe, sei gleich Null
InputStream is = request.getInputStream();
DataInputStream input = new DataInputStream(is);
byte[] buf = new byte[2048];
byte[] tb = new byte[input.readInt()];
application/octet-stream