Post方式发送UIImage数据到服务器(转)
2011-05-12 00:18
169 查看
//This example send email with attachment using server side //So iPhone will fill form and send proper request to web server using POST method //For test you can use attached sendEmail.php -(NSMutableData *)generateDataFromText:(NSString *)dataText fieldName:(NSString *)fieldName{ NSString *post = [NSString stringWithFormat:@"--AaB03x\r\nContent-Disposition: form-data; name=\"%@\"\r\n\r\n", fieldName]; // Get the post header int ASCII format: NSData *postHeaderData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; // Generate the mutable data variable: NSMutableData *postData = [[NSMutableData alloc] initWithLength:[postHeaderData length] ]; [postData setData:postHeaderData]; NSData *uploadData = [dataText dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; // Add the text: [postData appendData: uploadData]; // Add the closing boundry: [postData appendData: [@"\r\n" dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]]; // Return the post data: return postData; } - (NSData *)generatePostDataForData:(NSData *)uploadData fileName:(NSString *)fileName { // Generate the post header: NSString *post = [NSString stringWithFormat:@"--AaB03x\r\nContent-Disposition: form-data; name=\"attachment\"; filename=\"%@\"\r\nContent-Type: video/3gpp\r\n\r\n", fileName]; // Get the post header int ASCII format: NSData *postHeaderData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; // Generate the mutable data variable: NSMutableData *postData = [[NSMutableData alloc] initWithLength:[postHeaderData length] ]; [postData setData:postHeaderData]; // Add the image: [postData appendData: uploadData]; // Add the closing boundry: [postData appendData: [@"\r\n--AaB03x--" dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]]; // Return the post data: return postData; } -(void)sendEmailTo:(NSString *)email name:(NSString *)name { NSString *emailBody = @"Just some HTML text" //Fill some text fields NSMutableData *postData = [self generateDataFromText:email fieldName:@"to_email"]; [postData appendData:[self generateDataFromText:@"10000000" fieldName:@"MAX_FILE_SIZE"]]; [postData appendData:[self generateDataFromText:name fieldName:@"to_name"]]; [postData appendData:[self generateDataFromText:email fieldName:@"to_email"]]; [postData appendData:[self generateDataFromText:[[NSUserDefaults standardUserDefaults] stringForKey:@"name_preference"] fieldName:@"from_name"]]; [postData appendData:[self generateDataFromText:[[NSUserDefaults standardUserDefaults] stringForKey:@"email_preference"] fieldName:@"from_email"]]; [postData appendData:[self generateDataFromText:currentEmail.emailSubject fieldName:@"subject"]]; [postData appendData:[self generateDataFromText:emailBody fieldName:@"body"]]; [postData appendData:[self generateDataFromText:email fieldName:@"to_email"]]; //Prepare data for file NSData *dataObj = [NSData dataWithContentsOfFile:@"/link/to/file"]; [postData appendData:[self generatePostDataForData:dataObj fileName:@"fileName"]]; // Setup the request: NSMutableURLRequest *uploadRequest = [[[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:kLinkToPostFile] cachePolicy: NSURLRequestReloadIgnoringLocalCacheData timeoutInterval: 30 ] autorelease]; [uploadRequest setHTTPMethod:@"POST"]; [uploadRequest setValue:[NSString stringWithFormat:@"%d", [postData length]] forHTTPHeaderField:@"Content-Length"]; [uploadRequest setValue:@"multipart/form-data; boundary=AaB03x" forHTTPHeaderField:@"Content-Type"]; [uploadRequest setHTTPBody: postData]; NSData *responseData = [NSURLConnection sendSynchronousRequest:uploadRequest returningResponse:nil error:nil]; NSLog([[NSString alloc] initWithData:responseData encoding:NSASCIIStringEncoding]); }
相关文章推荐
- Post方式发送UIImage数据到服务器(转)
- Post方式发送UIImage数据到服务器
- Post方式发送UIImage数据到服务器
- Post方式发送UIImage数据到服务器 .
- 【jQuery】使用post()方法以POST方式从服务器发送数据
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- 使用post()方法以POST方式从服务器发送数据
- http的post方式连接服务器,发送数据到服务端,并获取服务端的数据
- 以post方式发送UIImage到服务器
- 通过POST方式发送数据到远程服务器
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- 使用curl库,以post方式向服务器发送json/字符串数据
- 使用curl库,以post方式向服务器发送json数据
- 通过ajax引擎对象向服务器发送数据的2中方式:get、post
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- Android开发使用POST方式向服务器请求和发送数据
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- 使用post()方法以POST方式从服务器发送数据
- Retrofit2+RxJava2 使用POST方式提交JSON数据,服务器无法解析的问题
- C#带cookie Post和Get方式发送数据