zoukankan      html  css  js  c++  java
  • 文件上传

    1、    文件的上传完整用例代码:

    #pragma mark 文件上传

    - (void)upload {

        NSURL *url = [NSURL URLWithString:@"http://192.168.1.106:8080/MJServer/upload"];

        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

        request.HTTPMethod = @"POST";

        // 设置请求头信息-数据类型,boundary--分割线

        [request setValue:@"multipart/form-data; boundary=mj" forHTTPHeaderField:@"Content-Type"];

        // 拼接请求体

        NSMutableData *data = [NSMutableData data];

        // 普通参数-username

        // 普通参数开始的一个标记

        [data appendData:Data(@"--mj ")];

        // 参数描述

        [data appendData:Data(@"Content-Disposition:form-data; name="username" ")];

        // 参数值

        [data appendData:Data(@" 123456 ")];

        // 文件参数-file--要跟服务器上的一样

        // 文件参数开始的一个标记

        [data appendData:Data(@"--mj ")];

        // 文件参数描述

        [data appendData:Data(@"Content-Disposition:form-data; name="file"; filename="img.png" ")];

        // 文件的MINETYPE

        [data appendData:Data(@"Content-Type:image/png ")];

        // 文件内容

        [data appendData:Data(@" ")];

        UIImage *image = [UIImage imageNamed:@"Default.png"];

        NSData *filedata = UIImagePNGRepresentation(image);

        [data appendData:filedata];

        [data appendData:Data(@" ")];

        // 参数结束的标识

        [data appendData:Data(@"--mj--")];

        // 设置请求体

        request.HTTPBody = data;

           [[NSURLConnection connectionWithRequest:request delegate:nil] start];

    }

    2、    文件maintype的获取

     方法一:

    #pragma mark 同步请求-获取文件的MIMEType

    - (void)getType {

    //本地文件路径

    NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/备课.txt"];

    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 

    //发送一个同步请求

    NSURLResponse *response = nil;

    //发送一个同步请求。快速

    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];

    NSString *type = [response MIMEType];

    NSString *str = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];

    NSLog(@"%@", str);

    NSLog(@"%@", type);

    }

    方法2:利用block发送异步请求,NSURLConnection放在NSOperationqueue队列里面执行操作

    #pragma mark 异步请求

    - (void)post2 {

        // 文件本地地址

        NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/备课.txt"];

        // 发送请求

        NSURLRequest *request = [NSURLRequest requestWithURL:url];

        // 这个操作队列是用来执行Block的

        NSOperationQueue *queue = [[[NSOperationQueue alloc] init] autorelease];

        // 发送异步请求

        [NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:

         // 请求结束后会回调这个Block

         ^(NSURLResponse *response, NSData *data, NSError *error) {

             NSString *str = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];

             NSLog(@"%@", str);

             NSLog(@"%@", [response MIMEType]);

        }];

    }

  • 相关阅读:
    Servlet项目 创建方法
    1. 连接数据库
    Jsp application对象(全局变量)
    Jsp session属性、方法
    让python 3支持mysqldb的解决方法
    Python读写文件(进阶)
    python操作MongoDB
    使用Python Pandas处理亿级数据
    SurfingTheInternet
    matplotlib中日期显示(不显示为科学计数法)
  • 原文地址:https://www.cnblogs.com/angongIT/p/3832713.html
Copyright © 2011-2022 走看看