iOS利用AFNetworking实现文件上传的示例代码

发布时间 - 2026-01-10 23:06:10    点击率:

0.导入框架准备工作                                   

1. 将框架程序拖拽进项目

2.  添加iOS框架引用

–SystemConfiguration.framework

–MobileCoreServices.framework

3.  引入

#import "AFNetworking.h"

4. 修改xxx-Prefix.pch文件

#import <MobileCoreServices/MobileCoreServices.h>

#import <SystemConfiguration/SystemConfiguration.h>

1.AFN的客户端,使用基本地址初始化,同时会实例化一个操作队列,以便于后续的多线程处理  

@interfaceViewController ()

{

  // AFN的客户端,使用基本地址初始化,同时会实例化一个操作队列,以便于后续的多线程处理

  AFHTTPClient  *_httpClient;
  NSOperationQueue *_queue;

}
- (void)viewDidLoad
{
  [super viewDidLoad];
  
  NSURL *url = [NSURL URLWithString:@"http://192.168.3.255/~apple/qingche"];
  _httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
  
  _queue = [[NSOperationQueue alloc] init];
}

2.利用AFN实现文件上传操作细节  

#pragma mark - 文件上传
- (IBAction)uploadImage
{
  /*
   此段代码如果需要修改,可以调整的位置
   
   1. 把upload.php改成网站开发人员告知的地址
   2. 把file改成网站开发人员告知的字段名
   */
  // 1. httpClient->url
  
  // 2. 上传请求POST
  NSURLRequest *request = [_httpClient multipartFormRequestWithMethod:@"POST" path:@"upload.php" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    // 在此位置生成一个要上传的数据体
    // form对应的是html文件中的表单
    
    
    UIImage *image = [UIImage imageNamed:@"头像1"];
    NSData *data = UIImagePNGRepresentation(image);
    
    // 在网络开发中,上传文件时,是文件不允许被覆盖,文件重名
    // 要解决此问题,
    // 可以在上传时使用当前的系统事件作为文件名
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    // 设置时间格式
    formatter.dateFormat = @"yyyyMMddHHmmss";
    NSString *str = [formatter stringFromDate:[NSDate date]];
    NSString *fileName = [NSString stringWithFormat:@"%@.png", str];
    
    
    /*
     此方法参数
     1. 要上传的[二进制数据]
     2. 对应网站上[upload.php中]处理文件的[字段"file"]
     3. 要保存在服务器上的[文件名]
     4. 上传文件的[mimeType]
     */
    [formData appendPartWithFileData:data name:@"file" fileName:fileName mimeType:@"image/png"];
  }];
  
  // 3. operation包装的urlconnetion
  AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request];
  
  [op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"上传完成");
  } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"上传失败->%@", error);
  }];
  
  //执行
  [_httpClient.operationQueue addOperation:op];

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# afnetworking上传文件  # afnetworking3.0  # 上传  # afnetworking上传  # iOS实现文件上传功能  # vue使用axios实现文件上传进度的实时更新详解  # ios用AFN进行文件上传的示例代码  # iOS 断点上传文件的实现方法  # iOS大文件的分片上传和断点上传的实现代码  # iOS实现文件切片储存并且上传(仿断点续传机制)  # vue项目中使用axios上传图片等文件操作  # iOS开发中以application/json上传文件实例详解  # Vue axios 中提交表单数据(含上传文件)  # iOS开发中文件的上传和下载功能的基本实现  # IOS开发教程之put上传文件的服务器的配置及实例分享  # java接收ios文件上传的示例代码  # 开发人员  # 多线程  # 上传文件  # 文件上传  # 的是  # 客户端  # 同时会  # 在此  # 准备工作  # 表单  # 大家多多  # 拖拽  # 器上  # 字段名  # 网络开发  # 二进制数  # NSOperationQueue  # _httpClient  # _queue 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  Python自动化办公教程_ExcelWordPDF批量处理案例  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  用yum安装MySQLdb模块的步骤方法  Laravel如何实现用户密码重置功能?(完整流程代码)  香港服务器WordPress建站指南:SEO优化与高效部署策略  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  米侠浏览器网页背景异常怎么办 米侠显示修复  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  晋江文学城电脑版官网 晋江文学城网页版直接进入  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  Linux系统运维自动化项目教程_Ansible批量管理实战  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  独立制作一个网站多少钱,建立网站需要花多少钱?  魔方云NAT建站如何实现端口转发?  用v-html解决Vue.js渲染中html标签不被解析的问题  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  Laravel中的withCount方法怎么高效统计关联模型数量  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  网页设计与网站制作内容,怎样注册网站?  Laravel集合Collection怎么用_Laravel集合常用函数详解  如何快速查询域名建站关键信息?  公司网站制作价格怎么算,公司办个官网需要多少钱?  QQ浏览器网页版登录入口 个人中心在线进入  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  如何将凡科建站内容保存为本地文件?  如何在Windows服务器上快速搭建网站?  在线制作视频的网站有哪些,电脑如何制作视频短片?  如何在景安云服务器上绑定域名并配置虚拟主机?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  北京企业网站设计制作公司,北京铁路集团官方网站?  如何用5美元大硬盘VPS安全高效搭建个人网站?  如何在IIS7中新建站点?详细步骤解析  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  音乐网站服务器如何优化API响应速度?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  如何在服务器上配置二级域名建站?  android nfc常用标签读取总结  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  网站优化排名时,需要考虑哪些问题呢?