文件下载及上传

简介: 文件解压缩第三方解压缩框架——ZipArchive下载地址:https://github.com/ZipArchive/ZipArchive需要引入libz.

文件解压缩

+(BOOL)createZipFileAtPath:(NSString*)path withFilesAtPaths:(NSArray*)paths;
+(BOOL)createZipFileAtPath:(NSString*)path withContentsOfDirectory:(NSString*)directoryPath;
  • 解压文件
+(BOOL)unzipFileAtPath:(NSString*)path toDestination:(NSString*)destination

文件下载

小文件下载

如果文件比较小,下载方式会比较多
  • 直接用 NSData 的
+ (id)dataWithContentsOfURL:(NSURL *)url
  • 利用 NSURLConnection 发送一个 HTTP 请求去下载
  • 如果是下载图片,还可以利用 SDWebImage 框架
如果是大文件下载,建议使用 NSURLSession 或者第三方框架

文件上传

文件上传的步骤

  • 设置请求头
[request setValue:@"multipart/form-data; boundary=分割线" forHTTPHeaderField:@"Content-Type"];
  • 设置请求体

  • 非文件参数
    --分割线\r\n
    Content-Disposition: form-data; name="参数名"\r\n
    \r\n
    参数值
    \r\n

  • 文件参数
    --分割线\r\n
    Content-Disposition: form-data; name="参数名"; filename="文件名"\r\n
    Content-Type: 文件的MIMEType\r\n
    \r\n
    文件数据
    \r\n

  • 参数结束的标记
    --分割线--\r\n

部分文件的 MIMEType

img_26af2ee027cf8cf304eb01fcf54e1b0b.png
MIMEType

获得文件的 MIMEType

  • 利用 NSURLConnection
- (NSString *)MIMEType:(NSURL *)url
{
    // 1.创建一个请求
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    // 2.发送请求(返回响应)
    NSURLResponse *response = nil;
    [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
    // 3.获得MIMEType
    return response.MIMEType;
}
  • C 语言 API
- (NSString *)mimeTypeForFileAtPath:(NSString *)path
{
    if (![[[NSFileManager alloc] init] fileExistsAtPath:path]) 
    {
        return nil;
    }
    
    CFStringRef UTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (__bridge CFStringRef)[path pathExtension], NULL);
    CFStringRef MIMEType = UTTypeCopyPreferredTagWithClass (UTI, kUTTagClassMIMEType);
    CFRelease(UTI);

    if (!MIMEType) 
    {
        return @"application/octet-stream";
    }

    return (__bridge NSString *)(MIMEType);
}
目录
相关文章
|
6月前
视频上传
视频上传
54 0
|
编解码 Java 应用服务中间件
文件的上传和下载
文件的上传和下载
89 0
|
前端开发 Java Apache
文件上传与下载
文件上传与下载 文件上传也称为upload,是指将本地图片、视频、音频等文件上传到服务器上,可以供其他用户浏览或下载的过程。文件上传在项目中应用非常广泛,我们经常发微博、发微信朋友圈都用到了文件上传功能。 文件上传时,对页面的form表单有如下要求: method=“post” 采用post方式提交数据 enctype=“multipart/form-data” 采用multipart格式上传文件 type=“file” 使用input的file控件上传
|
缓存 Java
sevlet实现下载文件功能
希望做一个小板块,实现文件的上传和下载,那么上传实现了,就需要实现下载,阅读了各位的博客总结了一下。在网页中通过超链接是可以访问我的资源的,浏览器不可访问的资源他就会下载到本地,像一些浏览器可以直接访问的如图片,txt文件浏览器会直接打开。这就需要我们在sevlet中统一处理文件下载。
141 0
sevlet实现下载文件功能
文件下载
文件下载
77 0
下载文件
下载文件
110 0
|
Web App开发 存储 Java
day18_文件的上传和下载学习笔记
一、文件的上传和下载 1、文件上传的原理分析 什么是文件上传?    要将客户端(浏览器)数据存储到服务器端,而不将数据直接存储到数据库中,而是要将数据存储到服务器所在的磁盘上,这就要使用文件上传。
1232 0