24>文件上传分析
2015-05-21 23:21
232 查看
一、文件上传的步骤 1.设置请求头 * 目的:告诉服务器请求体里面的内容并非普通的参数,而是包含了文件参数 [request setValue:@"multipart/form-data; boundary=heima" forHTTPHeaderField:@"Content-Type"]; 2.设置请求体 * 作用:存放参数(文件参数和非文件参数) 1> 非文件参数 [body appendData:HMEncode(@"--heima\r\n")]; [body appendData:HMEncode(@"Content-Disposition: form-data; name=\"username\"\r\n")]; [body appendData:HMEncode(@"\r\n")]; [body appendData:HMEncode(@"张三")]; [body appendData:HMEncode(@"\r\n")]; 2> 文件参数 [body appendData:HMEncode(@"--heima\r\n")]; [body appendData:HMEncode(@"Content-Disposition: form-data; name=\"file\"; filename=\"test123.png\"\r\n")]; [body appendData:HMEncode(@"Content-Type: image/png\r\n")]; [body appendData:HMEncode(@"\r\n")]; [body appendData:imageData]; [body appendData:HMEncode(@"\r\n")]; 3> 结束标记 :参数结束的标记 [body appendData:HMEncode(@"--heima--\r\n")]; 二、文件的MIMEType 1.百度搜索 2.查找服务器下面的某个xml文件 apache-tomcat-6.0.41\conf\web.xml 3.加载文件时通过Reponse获得 - (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; } 4.通过C语言函数 + (NSString *)mimeTypeForFileAtPath:(NSString *)path { if (![[NSFileManager alloc] init] fileExistsAtPath:path]) { return nil; } CFStringRef UTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (CFStringRef)[path pathExtension], NULL); CFStringRef MIMEType = UTTypeCopyPreferredTagWithClass (UTI, kUTTagClassMIMEType); CFRelease(UTI); if (!MIMEType) { return @"application/octet-stream"; } return NSMakeCollectable(MIMEType); }
相关文章推荐
- Spring MVC中文件上传时的异常HttpRequest -> MultipartHttpServletRequest ClassCastException
- 【asp】web做文件上传,需要在表单用上 <form Enctype="multipart/form-data"/>
- java 基于List<MultipartFile>实现多文件上传
- 文件的上传与下载--->张国亮总结心得第一季
- 26>ASI文件下载和上传
- <5>Android HAL hardware.h 源码文件分析 路径:/hardware/libhardware/include/hardware/hardware.h
- 24>文件下载
- asp.net/c# 用<input type="file" />实现文件上传,multipart/form-data
- <input type="file">定义样式并获取上传文件路径及指定文件类型
- 实时开发框架Meteor 实际应用系列<一>---文件的上传和下载[补充]
- 实时开发框架Meteor 实际应用系列<一>---文件的上传和下载
- spring mvc 实现任意文件上传—— 下载<二>
- 解决微信内嵌浏览器无法响应<input type='file'>上传文件的思路
- 文件的上传与下载--->张国亮总结心得第二季
- struts中post方式上传文件,enctype="multipart/form-data",request.getParameter("file") 是null的问题分析
- <input type="file"/> 文件上传
- <s:file/>多文件上传
- 解决<s:file>上传文件大小和 不能获取文件问题
- Android:让WebView支持<input type="file"…>元素,实现文件上传
- <input >上传图片文件的解说