我想將圖像數據對象上傳到服務器(.html),文件名爲(123456700.png)。如何設置正確的HTTP標頭和正文
此代碼沒有錯誤,但上傳不起作用。
組信頭
// Initial Setting
NSString *urlString = @"http://121.78.147.19/uploadfile.html";
NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"];
// Set Heeader
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
// type: text/html;charset=UTF-8;
NSString *contentType = [NSString stringWithFormat:@"text/html;charset=UTF-8; boundary=%@",boundary];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];
設定的主體(imgData有沒有問題,我檢查imgData.length)
NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
// Disposition: form-data, name="image" filename="123456700.png" ???
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"image\"; filename=\"123456700.png\"\r\n"]
dataUsingEncoding:NSUTF8StringEncoding]];
// Type: application/octet-stream ???
[body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:imgData]];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];
運行(沒有錯誤,resData是HTML的文本數據。
NSURLResponse *response = nil;
NSError *error = nil;
NSData *resData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
================================================ ==============================
/uploadfile.html屏幕截圖(Chrome/Below Info和文本是html源代碼。)
頁面沒有問題。上傳工作正常通過網頁。
帶有文本「文件選擇器」的按鈕是「選擇文件」按鈕。
------------------------------- Web Page Screen Capture ----------- -----------------------------我
您的服務器是否收到任何數據?並且,您如何獲得imgData – Hanon 2012-02-29 03:44:18
我無法檢查服務器。和imgData = [NSData dataWithFile:~~];我檢查了路徑和數據長度。 imgData沒有問題 – ChangUZ 2012-02-29 04:09:18
您的網站不接受任何發佈的請求數據。你必須使用服務器編程來獲得它。 – Hanon 2012-02-29 04:31:47