1
A
回答
2
使用如何爲發佈數據配置NSMutableURLRequest
的衆多資源之一。 Content-Type標題應該是「multipart/form-data」,並且每個文件將依次與適當的部分標題連接。 RFC2388是相關標準。
1
您必須爲要上傳的不同圖片創建邊界。讓我一步一步解釋。 1.將圖像轉換爲NSData並將它們添加到字典中。
UIImage *image1 = [UIImage imageNamed:@"imageName"];
UIImage *image2 = [UIImage imageNamed:@"imageName"];
UIImage *image3 = [UIImage imageNamed:@"imageName"];
NSMutableDictionary *imageDataDictionary = [[NSMutableDictionary alloc] init];
[imageDataDictionary setObject:UIImagePNGRepresentation(image1) forKey:@"image"];
[imageDataDictionary setObject:UIImagePNGRepresentation(image2) forKey:@"image"];
[imageDataDictionary setObject:UIImagePNGRepresentation(image3) forKey:@"image"];
當已經創建的上述字典它的時間來創建身體部分的請求。
NSMUtableData *finalPostData = [[NSMutableData alloc] init]; NSString *boundary = @"0xKhTmLbOuNdArY"; NSString *endBoundary = [NSString stringWithFormat:@"\r\n--%@\r\n", boundary]; [finalPostData appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary]; for(NSString *key in imageDataDictionary) { imageData = [imageDataDictionary objectForKey:key]; [finalPostData appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; [finalPostData appendData:[@"Content-Disposition: form-data; name=\"upload\"; filename=\"image.png\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; [finalPostData appendData:[@"Content-Type: image/png\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; [finalPostData appendData:[NSData dataWithData:imageData]]; [finalPostData appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; }
當所有的圖像被添加。我們必須以最後的邊界結束。
現在我們的數據已準備就緒。我們只需將其附加到請求的正文。
相關問題
- 1. AVaudioRecorder發佈請求iOS沒有發送
- 2. Spring Data Rest:如何發送包含請求的多部分文件正文
- 3. java SE。如何發送二進制文件的發佈請求?
- 4. Nodejs:如何發送發佈請求?
- 5. 如何向HttpClient發送發佈請求
- 6. 發送一個zip文件作爲附件在ios中的JSON發佈請求?
- 7. Python請求發佈包含nan的json
- 8. 如何在.net框架中發送包含'%%'的http發佈請求?
- 9. 發送包含文件附件的會議請求C#
- 10. 如何使用C#發送包含JSON正文的GET請求?
- 11. 如何發送大文件到python中發佈請求
- 12. 如何在django中使用ajax發佈請求發送文件
- 13. 發送POST請求包含ecoded JSON
- 14. 如何發送多個數組請求?
- 15. 如何發送多個Ajax請求?
- 16. 如何發送多個獲取請求
- 17. 向eBay API發出包含許多請求的單個請求
- 18. OSX Safari/quicktime不發送包含媒體文件請求的cookie
- 19. 使用HttpURLConnection發送包含PUT請求的文件
- 20. Nodejs - 多個發佈請求
- 21. 發送多個Web請求
- 22. 發送多個CuRL請求
- 23. Android如何發送包含圖像文件和其他屬性的json主體的Retrofit2.0發佈請求
- 24. Swift 3如何發送與蒸氣多部分發布請求
- 25. HTTPS請求發送時沒有包含Python請求的頭文件
- 26. 當我發送一個蟒蛇的發佈請求...我如何
- 27. 如何在iOS發送NTLM請求
- 28. 在iOS中發佈請求?
- 29. iOS:發送Facebook請求
- 30. 如何處理包含列表的Flask中的發佈請求
每個文件都需要是NSData嗎? – Shay 2010-07-07 16:09:58
這可能是這樣做的方式,特別是如果您傳輸二進制數據。只需在NSMutableData中累積請求的主體並在適當的地方添加文件數據即可。 – warrenm 2010-07-07 17:19:07
你的意思是所有的文件將在一個NSMutableData? 服務器如何分隔它們? 我需要做什麼? – Shay 2010-07-07 19:14:28