文件解壓縮
-
第三方解壓縮框架——ZipArchive
下載地址:https://github.com/ZipArchive/ZipArchive- 需要引入libz.dylib框架
- 導(dǎo)入頭文件Main.h
創(chuàng)建壓縮文件
+(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 發(fā)送一個 HTTP 請求去下載
- 如果是下載圖片,還可以利用 SDWebImage 框架
如果是大文件下載,建議使用 NSURLSession 或者第三方框架
文件上傳
文件上傳的步驟
- 設(shè)置請求頭
[request setValue:@"multipart/form-data; boundary=分割線" forHTTPHeaderField:@"Content-Type"];
設(shè)置請求體
非文件參數(shù)
--分割線\r\n
Content-Disposition: form-data; name="參數(shù)名"\r\n
\r\n
參數(shù)值
\r\n文件參數(shù)
--分割線\r\n
Content-Disposition: form-data; name="參數(shù)名"; filename="文件名"\r\n
Content-Type: 文件的MIMEType\r\n
\r\n
文件數(shù)據(jù)
\r\n參數(shù)結(jié)束的標(biāo)記
--分割線--\r\n
部分文件的 MIMEType

MIMEType
獲得文件的 MIMEType
- 利用 NSURLConnection
- (NSString *)MIMEType:(NSURL *)url
{
// 1.創(chuàng)建一個請求
NSURLRequest *request = [NSURLRequest requestWithURL:url];
// 2.發(fā)送請求(返回響應(yīng))
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);
}