IOS上传文件开发



    在移动应用开发  文件形式上传是不可缺少的,近期把IOS这块文件上传文件代码简单的整理一下。假设大家有须要安卓这边的代码,本人也能够分享给大家!

QQ群:74432915  欢迎大家一起探讨


首先本demo採用网上开源框架 AFNetworking  源代码:http://download.csdn.net/detail/wangliang198901/7809439

将整个框架导入IOS新建立的project中

在FKAppDelegate.h声明 例如以下:
     

#import <UIKit/UIKit.h>

#import "AFHTTPRequestOperationManager.h"

@interface FKAppDelegate :UIResponder <UIApplicationDelegate>

@property (strong,nonatomic)UIWindow *window;

@property (strong,nonatomic)AFHTTPRequestOperationManager*
manager;

@end

然后在 FKAppDelegate.m文件初始化

#import "FKAppDelegate.h"

@implementation FKAppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary
*)launchOptions

{

self.manager = [AFHTTPRequestOperationManagermanager];

self.manager.responseSerializer = [[AFHTTPResponseSerializeralloc]init];

return
YES;

}

然后在自定义ViewController主要做例如以下操作

#import "FKViewController.h"

#import "FKAppDelegate.h"

@interface
FKViewController ()

{

FKAppDelegate* appDelegate;

NSArray* images;

}

@end

@implementation FKViewController

- (void)viewDidLoad

{

[superviewDidLoad];

appDelegate = [UIApplicationsharedApplication].delegate;

self.picker.dataSource
= self;

self.picker.delegate
= self;

//
使用简化语法创建NSArray集合

images =@[@"logo",@"java"
, @"android"];

}

// UIPickerViewDataSource中定义的方法。该方法返回值决定该控件包括多少列

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView*)pickerView

{

//返回1表明该控件仅仅包括1列

;

}

-(NSInteger)pickerView:(UIPickerView *)pickerView

numberOfRowsInComponent:(NSInteger)component

{

returnimages.count;

}

#define kImageTag

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:

(NSInteger)row forComponent:(NSInteger)component

reusingView:(UIView *)view

{

//假设可重用的view的tag不等于kImageTag,表明该view已经不存在,须要又一次创建

if(view.tag !=kImageTag)

{

view = [[UIViewalloc]init];

//
为该UIView设置tag属性

view.tag =kImageTag;

//设置不同意用户交互

view.userInteractionEnabled =NO;

UIImageView* iv = [[UIImageViewalloc]initWithImage:

[UIImageimageNamed:[imagesobjectAtIndex:row]]];

iv. , 
, ,);

iv.contentMode =UIViewContentModeScaleAspectFit;

[viewaddSubview:iv];

}

return view;

}

// UIPickerViewDelegate中定义的方法,该方法的返回值决定列表项的高度

- (CGFloat)pickerView:(UIPickerView *)pickerView

rowHeightForComponent:(NSInteger)component

{

;

}

// UIPickerViewDelegate中定义的方法,该方法的返回值决定列表项的宽度

- (CGFloat)pickerView:(UIPickerView *)pickerView

widthForComponent:(NSInteger)component

{

;

}

- (IBAction)upload:(id)sender

{

//获取用户选中的行

];

//获取用户选中的文件名称

NSString* fileName = [imagesobjectAtIndex:selectedRow];

//依据用户选中的文件名称确定须要上传的文件

NSURL *filePath = [[NSBundlemainBundle]URLForResource:fileName

withExtension:@"png"];

NSDictionary *parameters =@{@"name":@"额外的请求參数"};

//
使用AFHTTPRequestOperationManager发送POST请求

[appDelegate.manager

POST:@"http://192.168.1.88:8888/AFNetworkingServer/upload"

parameters:parameters

//使用代码块来封装要上传的文件数据

constructingBodyWithBlock:^(id<AFMultipartFormData>
formData)

{

[formDataappendPartWithFileURL:filePath //指定上传的文件

name:@"file" //指定上传文件相应的请求參数名

//指定上传文件的原始文件名称

fileName:[NSStringstringWithFormat:@"%@.png"
,fileName]

//指定上传文件的MIME类型

mimeType:@"image/png"

error:nil];

}

//获取server响应成功时激发的代码块

success:^(AFHTTPRequestOperation *operation,id
responseObject)

{

//当使用HTTP响应解析器时,server响应数据被封装在NSData中

//
此处将NSData转换成NSString、并使用UIAlertView显示登录结果

[[[UIAlertViewalloc]initWithTitle:@"上传结果"
message:

[[NSStringalloc]initWithData:responseObjectencoding:

NSUTF8StringEncoding]delegate:self

cancelButtonTitle:@"确定"otherButtonTitles:nil]

show];

}

//获取server响应失败时激发的代码块

failure:^(AFHTTPRequestOperation *operation,NSError
*error)

{

NSLog(@"获取server响应出错!

");

}];

}

@end



源代码下载: http://download.csdn.net/detail/wangliang198901/7813361

注:本文章属于个人原创  请尊重个人劳动成果,谢谢。







版权声明:本文博主原创文章,博客,未经同意,不得转载。

IOS上传文件开发的更多相关文章

  1. iOS上传文件,有关http上传协议-RFC1867

    以上是抓包HTML input file标签上传的内容 只要模拟上面http 的header跟body就可以成功. 整体说明: post 上传文件时,以在http body里面带参数,参数的格式,根据 ...

  2. 闲话ajax,例ajax轮询,ajax上传文件[开发篇]

    引语:ajax这门技术早已见怪不怪了,我本人也只是就自己真实的经验去总结一些不足道的话.供不是特别了解的朋友参考参考! 本来早就想写一篇关于ajax的文章的,但是前段时间一直很忙,就搁置了,趁着元旦放 ...

  3. iOS上传文件代码,自定义组装body

    以下代码为上传文件所用代码,简单方便,搞了好久,终于知道这么简单的方式来上传. 其它类库也就是把这几句代码封装的乱七八糟得,让你老久搞不懂原理.不就是在body上面加点字符串,body下面加点字符串, ...

  4. iOS 上传文件

    NSString *boundry = @"boundry";//分节符 NSMutableURLRequest *mutableRequest = [NSMutableURLRe ...

  5. iOS开发——网络Swift篇&NSURLSession加载数据、下载、上传文件

    NSURLSession加载数据.下载.上传文件   NSURLSession类支持三种类型的任务:加载数据.下载和上传.下面通过样例分别进行介绍.   1,使用Data Task加载数据 使用全局的 ...

  6. IOS开发教程之put上传文件的服务器的配置及实例分享-备用

    感谢大神分享 1,HTTP常见的方法 GET 获取指定资源 POST 2M 向指定资源提交数据进行处理请求,在RESTful风格中用于新增资源 HEAD 获取指定资源头部信息PUT 替换指定资源(不支 ...

  7. PHP -- 上传文件接口编写 及 iOS -- 端上传图片AF实现

    PHP 上传文件接口: //保存图片 $json_result ['status'] = 0; $path = 'upfile'; $json_result ['status'] = 0; $json ...

  8. iOS应用内HTTP服务上传文件

    相信很多朋友都用过AirAV.100tv这类iOS视频播放应用中通过Wifi,从PC上输入Web地址上传文件到iOS设备上,我也一直想实现这个功能,苦于知识掌握有限,后来在其他群友的指导下参照很多大神 ...

  9. javaWeb开发中关于eclipse等ide重新部署或重启项目等原因造成上传文件丢失问题解决方案

    在开发项目时,有时候需要用到上传功能,比如头像上传等,其文件会保存到服务器中.但是我发现在用eclipse做项目的过程中,每次重新部署项目,原来上传的文件就会丢失. 其原因是因为每次项目修改后,ecl ...

随机推荐

  1. 红黑树-Python实现

    #coding:utf8 #author:HaxtraZ #description:红黑树,python实现 RED = 'red' BLACK = 'black' class RBT: def __ ...

  2. 陈一舟《情系人人》:先搞钱,再搞人才_DoNews-IT门户-移动互联网新闻-电子商务新闻-游戏新闻-风险投资新闻-IT社交网络社区

    陈一舟<情系人人>:先搞钱,再搞人才_DoNews-IT门户-移动互联网新闻-电子商务新闻-游戏新闻-风险投资新闻-IT社交网络社区 陈一舟<情系人人>:先搞钱,再搞人才

  3. Codeforces 61E Enemy is weak 乞讨i&lt;j&lt;k &amp;&amp; a[i]&gt;a[j]&gt;a[k] 对数的 树阵

    主题链接:点击打开链接 意大利正在寻求称号 i<j<k && a[i]>a[j]>a[k] 的对数 假设仅仅有2元组那就是求逆序数的做法 三元组的话就用一个树状 ...

  4. HDU 4454 - Stealing a Cake(三分)

    我比较快速的想到了三分,但是我是从0到2*pi区间进行三分,并且漏了一种点到边距离的情况,一直WA了好几次 后来画了下图才发现,0到2*pi区间内是有两个极值的,每个半圆存在一个极值 以下是代码 #i ...

  5. IIS架构与HTTP请求处理流程

    IIS架构与HTTP请求处理流程 Windows操作系统中的IIS负责提供互联网服务,一台运行了IIS的计算机可以看成是一台Web服务器. Windows XP SP2 中IIS主版本号为5,Wind ...

  6. java实现简单web服务器(分析+源代码)

    在日常的开发中,我们用过很多开源的web服务器,例如tomcat.apache等等.现在我们自己实现一个简单的web服务器,基本的功能就是用户点击要访问的资源,服务器将资源发送到客户端的浏览器.为了简 ...

  7. 解决:Could not find debuginfo pkg for dependency package glibc-2.12-1.132.el6_5.3.i686

    场景: (gdb) break main Breakpoint 1 at 0x8048417 (gdb) r Starting program: /usr/local/src/ccode/ch11/s ...

  8. FluentData

    FluentData微型ORM 最近在帮朋友做一个简单管理系统,因为笔者够懒,但是使用过的NHibernate用来做这中项目又太不实际了,索性百度了微型ORM,FluentData是第一个跳入我眼睛的 ...

  9. SignalR技术

    Asp.net SignalR快速入门 一.前言 之前半年时间感觉自己有点浮躁,导致停顿了半年多的时间没有更新博客,今天重新开始记录博文,希望自己可以找回初心,继续沉淀.由于最近做的项目中用到Sign ...

  10. Windows Phone开发(36):动画之DoubleAnimation

    原文:Windows Phone开发(36):动画之DoubleAnimation 从本节开始,我们将围绕一个有趣的话题展开讨论--动画. 看到动画一词,你一定想到Flash,毕竟WP应用的一个很重要 ...