欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

ios23-文件上传

程序员文章站 2022-05-18 10:17:45
3. // //  ios23_uploadviewcontroller.h //  ios23-upload // //  creat...

3.


//

//  ios23_uploadviewcontroller.h

//  ios23-upload

//

//  created by  on 13-6-17.

//  copyright 2013年 __mycompanyname__. all rights reserved.

//

 

#import <uikit/uikit.h>

#import "asihttprequest.h"

 

@interface ios23_uploadviewcontroller : uiviewcontroller<asihttprequestdelegate>

-(ibaction)upload;

 

@end

 

 

-------------------------------------------------


//

//  ios23_uploadviewcontroller.m

//  ios23-upload

//

//  created by  on 13-6-17.

//  copyright 2013年 __mycompanyname__. all rights reserved.

//

 

#import "ios23_uploadviewcontroller.h"

#import "asihttprequest.h"

#import "asiformdatarequest.h"

 

@implementation ios23_uploadviewcontroller

 

- (void)didreceivememorywarning

{

    [super didreceivememorywarning];

    // release any cached data, images, etc that aren't in use.

}

 

#pragma mark - view lifecycle

-(void)upload{

    //定义请求的url地址:

    nsstring *uploadurl = @"https://172.22.65.2/2012/upload.php";

    uiimage *im = [uiimage imagenamed:@"csdn"];//通过path图片路径获取图片

    nsdata *data = uiimagepngrepresentation(im);//获取图片数据

    /*

     ios中获取图片的方法有两种,一种是uiimagejpegrepresentation ,一种是uiimagepngrepresentation前者获取到图片的数据量要比后者的小很多。。

     */

    nsurl *url = [nsurl urlwithstring:uploadurl];

   
    asiformdatarequest *arequest = [[asiformdatarequest alloc] initwithurl:url];

    [arequest setdelegate:self];//代理

    [arequest setrequestmethod:@"post"];

    [arequest adddata:data withfilename:@"test.png" andcontenttype:@"image/png" forkey:@"file"];

    //forkey:@"file"  

    [arequest addrequestheader:@"content-type" value:@"binary/octet-stream"];//这里的value值 需与服务器端 一致

   
    [arequest startasynchronous];//开始。异步

    [arequest setdidfinishselector:@selector(headportraitsuccess)];//当成功后会自动触发 headportraitsuccess 方法

    [arequest setdidfailselector:@selector(headportraitfail)];//如果失败会 自动触发 headportraitfail 方法

  //  [arequest release];

   


}

-(void)headportraitsuccess{

   
    nslog(@"上传成功!");

   
}

 

-(void)headportraitfail{

   
   
    nslog(@"上传失败!");

   
}

 

//开始request请求

- (void)requeststarted:(asihttprequest *)request{

   
   
    nslog(@"开始请求!");

   
}

 

- (void)viewdidload

{

    [super viewdidload];

// do any additional setup after loading the view, typically from a nib.

}

 

- (void)viewdidunload

{

    [super viewdidunload];

    // release any retained subviews of the main view.

    // e.g. self.myoutlet = nil;

}

 

- (void)viewwillappear:(bool)animated

{

    [super viewwillappear:animated];

}

 

- (void)viewdidappear:(bool)animated

{

    [super viewdidappear:animated];

}

 

- (void)viewwilldisappear:(bool)animated

{

[super viewwilldisappear:animated];

}

 

- (void)viewdiddisappear:(bool)animated

{

[super viewdiddisappear:animated];

}

 

- (bool)shouldautorotatetointerfaceorientation:(uiinterfaceorientation)interfaceorientation

{

    // return yes for supported orientations

    return (interfaceorientation != uiinterfaceorientationportraitupsidedown);

}

 

@end