iOS Wifi传歌GCDWebUploader

git地址:https://github.com/swisspol/GCDWebServer

或者用pod安装:pod "GCDWebServer/WebUploader", "~> 3.0"

#import "WebUploaderViewController.h"
#import "GCDWebUploader.h"
#import <AFNetworking/AFNetworking.h>

@interface WebUploaderViewController () <GCDWebUploaderDelegate>

@property (nonatomic, strong) GCDWebUploader *webServer;

@property (nonatomic, strong) NSString *documentsPath;

@property (nonatomic, strong) UILabel *networkLabel;

@end

@implementation WebUploaderViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self createCustomNavi:@"WebUploader"];
    
    [self setUp];
}

- (void)setUp {
    //创建webServer,设置根目录
    [self creatDir:self.documentsPath];
    _webServer = [[GCDWebUploader alloc] initWithUploadDirectory:self.documentsPath];
    //设置代理
    _webServer.delegate = self;
    _webServer.allowHiddenItems = YES;
    //限制文件上传类型
    _webServer.allowedFileExtensions = @[@"mp3",@"doc", @"docx", @"xls", @"xlsx", @"txt", @"pdf"];
    
    _networkLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 100, UI_SCREEN_WIDTH, 100)];
    _networkLabel.textColor = [UIColor blackColor];
    _networkLabel.textAlignment = 1;
    _networkLabel.font = [UIFont systemFontOfSize:14];
    [self.view addSubview:_networkLabel];
    
    BOOL isOK = [_webServer start];
    if (isOK) {
        _networkLabel.text = [NSString stringWithFormat:@"%@", _webServer.serverURL];
    }else {
        _networkLabel.text = @"启动失败,请退出当前页面,重试";
    }
}

/**
 创建文件夹
 
 @param dirPath 文件夹名称
 @return 创建成功或失败
 */
- (BOOL)creatDir:(NSString *)dirPath {
    if ([[NSFileManager defaultManager] fileExistsAtPath:dirPath]) {//判断dirPath路径文件夹是否已存在,此处dirPath为需要新建的文件夹的绝对路径
        NSLog(@"沙盒目录已经存在%@",dirPath);
        return NO;
    }else {
        [[NSFileManager defaultManager] createDirectoryAtPath:dirPath withIntermediateDirectories:YES attributes:nil error:nil];//创建文件夹
        NSLog(@"创建成功%@",dirPath);
        return YES;
    }
}

- (NSString *)documentsPath {
    return  [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingPathComponent:[NSString stringWithFormat:@"Music"]];
}

#pragma mark - <GCDWebUploaderDelegate>
//上传文件到目录
- (void)webUploader:(GCDWebUploader*)uploader didUploadFileAtPath:(NSString*)path {
    NSLog(@"上传音乐 %@", [self getMusicFileArray]);
}

- (NSString *)getFilePath:(NSString *)fileName {
    return  [self.documentsPath stringByAppendingPathComponent:fileName];
}

//获取目录下的文件
- (NSMutableArray *)getMusicFileArray {
    NSFileManager *fileManager = [NSFileManager defaultManager];
    return [NSMutableArray arrayWithArray:[fileManager contentsOfDirectoryAtPath:self.documentsPath error:nil]];
}

@end

在浏览器输入获取的ip(_webServer.serverURL)就可以上传文件到手机了,需要电脑和手机在同一网络

屏幕快照 2018-12-15 下午4.27.17.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • GCDWebServer 摘要 关键词:iOS服务器框架,基于GCD GCDWebServer是一个现代和轻量级的...
    三秋树下阅读 30,402评论 26 66
  • 每天看到儿子作业做得很晚。我情绪就开始不好起来。开学到现在,跟儿子发了好几次冲突。儿子总是和我对着干,我让他这样,...
    可乐开心阅读 266评论 2 3
  • 关键词 【风险】,【风险厌恶】,【风险溢价】,【风险偏好(风险态度)】,【风险承受能力】 内容关系图 核心要点 高...
    演奏的船长阅读 801评论 0 0
  • 诗|小建 我无限怀念过去的日子 和一所房子 一匹马 怀念春天的山岗 怀念热情的夏 怀念万山红遍的秋 怀念白雪皑皑的...
    新归阅读 169评论 0 1
  • 在网页DIV中,常常会有一个大的DIV,点击事件响应而影响了DIV内小的点击事件。这种情况下我们就可以用到冒泡了,...
    恋上夜的黑阅读 301评论 0 0