IOS上传图片的方法

本文介绍了一种使用Objective-C实现的照片上传方法。通过ASIFormDataRequest发送POST请求,将本地文件(如1.jpg)作为multipart/form-data格式的数据上传到指定URL。同时,文章详细展示了如何设置请求头、构建请求体以及附加必要的参数。
摘要由CSDN通过智能技术生成
下面是图片上传的方法:

-(void)loadImage:(NSString*)aurl
{
        NSData              *imageData;
        NSMutableData       *postBody;
        NSString            *stringBoundary, *contentType;
        NSURL *url = [NSURL URLWithString:aurl];  //将字符串转换为NSURL格式
        
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"1.jpg"];

    imageData = [[NSData alloc] initWithContentsOfFile:path];

        ASIFormDataRequest *aRequest = [[ASIFormDataRequest alloc] initWithURL:url]; 
        
        stringBoundary = [NSString stringWithString:@"0xKhTmLbOuNdArY"];
        
    contentType    = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", stringBoundary];

        [aRequest addRequestHeader:@"Content-Type" value:contentType];
        
        postBody = [[NSMutableData alloc] init];
        
    [postBody appendData:[[NSString stringWithFormat:@"\r\n\r\n--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
        
    [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"title\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
        
    [postBody appendData:[[NSString stringWithString:@"lighttable"] dataUsingEncoding:NSUTF8StringEncoding]];  // So Light Table show up as source in Twitter post
        
    NSString *imageFileName = [NSString stringWithFormat:@"photo.jpeg"];
        
    [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
        
    [postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"upload\"; filename=\"%@\"\r\n",imageFileName] dataUsingEncoding:NSUTF8StringEncoding]];
        
    [postBody appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 
        
    [postBody appendData:imageData];
        
        [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
        
        [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"password\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
        
    [postBody appendData:[[NSString stringWithString:@"lighttablexxxxxxxx"] dataUsingEncoding:NSUTF8StringEncoding]];  
        
        [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];

    [aRequest setDelegate:self];
    
        [aRequest appendPostData:postBody];
    
    [aRequest setRequestMethod:@"POST"];  
        
    [aRequest startAsynchronous];
        
        [postBody release];
    [aRequest release];
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值