iOS Asihttp上传文件(图片等)以及服务端的代码(c#,.net Web api2)

来源:互联网 发布:windows xp msdn 下载 编辑:程序博客网 时间:2024/05/01 07:06

1,客户端的代码

 NSString *api = @"http://192.168.20.189:6900/bk/api/upload";    ASIFormDataRequest *req = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:api]];    [req setRequestMethod:@"POST"];    //    NSString *imgPath = @"/Users/duanhai/Desktop/test.png";    NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@".png"];//  NSData *image = [[NSData alloc] initWithContentsOfFile:path];//    [req addData:image withFileName:@"test.png" andContentType:@"image/jpeg" forKey:@"image"];    [req setFile:path forKey:@"whatever"];    [req setCompletionBlock:^{        NSLog(@"xxxx is %@ and err is %@",req.responseString,req.error);    }];    [req setFailedBlock:^{        NSLog(@"err code is %@",[req.error localizedDescription]);    }];    [req startAsynchronous];

2,服务端代码

 [RoutePrefix("api/upload")]    public class UploadController : ApiController    {        public HttpResponseMessage Post()        {            HttpResponseMessage result = null;            var httpRequest = HttpContext.Current.Request;            if (httpRequest.Files.Count > 0)            {                var docfiles = new List<string>();                foreach (string file in httpRequest.Files)                {                    var postedFile = httpRequest.Files[file];                   // var filePath = HttpContext.Current.Server.MapPath("~/" + postedFile.FileName);                    var filePath = "C:/Users/Tony_mac/Desktop/upload/"+postedFile.FileName;                    postedFile.SaveAs(filePath);                    docfiles.Add(filePath);                }                result = Request.CreateResponse(HttpStatusCode.Created, docfiles);            }            else            {                result = Request.CreateResponse(HttpStatusCode.BadRequest);            }            return result;        }    }

服务端我是建了一个虚拟目录,故api地址中有个bk。

0 0
原创粉丝点击