Tôi gặp sự cố khi tải tệp lên bằng FTP từ ứng dụng iPhone của mình.Tải lên nhiều tệp bằng http POST
Tôi đang gửi yêu cầu HTTP POST
tới dịch vụ web của mình với tất cả các thông số cần thiết. Tôi đang gửi hai tệp, một tệp là một hình ảnh và tệp thứ hai là âm thanh. Hình ảnh đang được tải lên nhưng âm thanh thì không. Khi tôi theo dõi dịch vụ web của mình, nó chỉ hiển thị trường hình ảnh dưới dạng tệp được tải lên. Nó không cho thấy âm thanh cũng ở đó.
Mã của tôi là:
NSString *urlString = [NSString stringWithFormat:ADD_LEAD_API_URL];
NSMutableURLRequest *postRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString]];
// change type to POST (default is GET)
[postRequest setHTTPMethod:@"POST"];
// just some random text that will never occur in the body
NSString *stringBoundary = @"0xKhTmLbOuNdArY---This_Is_ThE_BoUnDaRyy---pqo";
// header value
NSString *headerBoundary = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",stringBoundary];
// set header
[postRequest addValue:headerBoundary forHTTPHeaderField:@"Content-Type"];
// create data
NSMutableData *postBody = [NSMutableData data];
[postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"userId\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[appDelegate.objCurrentUser.userId dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
// message part
[postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"firstName\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[firstName dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
/*** My rest of string parameters are successfully added to request ***/
// media part
[postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"imageUrl\"; filename=\"dummy.jpg\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[@"Content-Type: image/jpeg\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[@"Content-Transfer-Encoding: binary\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
// get the image data from main bundle directly into NSData object
UIImage *img= leadImage;
NSData *imageData= UIImageJPEGRepresentation(img,90);
[postBody appendData:imageData];
// Image is being uploaded
[postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"recordSoundUrl\"; filename=\"%@\"\r\n", self.recordingPath] dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[@"Content-Type: application/octet-stream\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[@"Content-Transfer-Encoding: binary\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
NSData *soundData = [NSData dataWithContentsOfFile:[appDelegate.documentDir stringByAppendingPathComponent:self.recordingPath]];
[postBody appendData:soundData];
[postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
// final boundary
[postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
// add body to post
[postRequest setHTTPBody:postBody];
// Asynch request
NSURLConnection *conn = [NSURLConnection connectionWithRequest:postRequest delegate:self];
Nếu tôi không tải lên các hình ảnh, sau đó phải mất âm thanh. Vì vậy, tôi chỉ có thể gửi một tệp với yêu cầu. Hãy giúp tôi và cho tôi biết nếu tôi sai ở bất cứ đâu.
Xin cảm ơn trước.
Xin chào, tôi đang gặp phải sự cố tương tự. Bạn có thể giúp tôi trong việc này không. –
Bạn đang làm gì? Bạn đang cố gắng tải lên nhiều tệp bằng cách tôi đã làm chưa? Nếu như sau khi thêm dữ liệu hình ảnh với dòng: '[postBody appendData: imageData];' replace: '[postBody appendData: [[NSString stringWithFormat: @" -% @ \ r \ n ", stringBoundary] dataUsingEncoding: NSUTF8StringEncoding] ]; 'với' [postBody appendData: [[NSString stringWithFormat: @ "\ r \ n -% @ \ r \ n", stringBoundary] dataUsingEncoding: NSUTF8StringEncoding]]; '... Hy vọng điều này sẽ giúp –
cho tôi biết nếu điều này không hoạt động .. Tôi luôn ở đây để giúp đỡ –