• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
peer
............
博客园    首页    新随笔    联系   管理    订阅  订阅
Post方式发送UIImage数据到服务器(转)
//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]);

	
	
}
posted on 2011-05-12 00:18  peerlessly  阅读(614)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3