美文网首页
iOS上传文件参数解析(HTTP header Content-

iOS上传文件参数解析(HTTP header Content-

作者: wwwwwwdi | 来源:发表于2018-10-19 16:43 被阅读175次

    AFNetworking中提供的图片上传方法:

        [_sessionManager POST:uploadUrl parameters:dict constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
            if (imageData) {
                [formData appendPartWithFileData:imageData name:<#name#> fileName:<#fileName#> mimeType:@"jpg"];
            }
        } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nonnull responseObject) {
            suc(task,responseObject);
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
            fail(task,error);
        }];
    

    可以看到里边有几个字段:

    /**
     Appends the HTTP header `Content-Disposition: file; filename=#{filename}; name=#{name}"` and `Content-Type: #{mimeType}`, followed by the encoded file data and the multipart form boundary.
    
     @param data The data to be encoded and appended to the form data.
     @param name The name to be associated with the specified data. This parameter must not be `nil`.
     @param fileName The filename to be associated with the specified data. This parameter must not be `nil`.
     @param mimeType The MIME type of the specified data. (For example, the MIME type for a JPEG image is image/jpeg.) For a list of valid MIME types, see http://www.iana.org/assignments/media-types/. This parameter must not be `nil`.
     */
    - (void)appendPartWithFileData:(NSData *)data
                              name:(NSString *)name
                          fileName:(NSString *)fileName
                          mimeType:(NSString *)mimeType
    {
        NSParameterAssert(name);
        NSParameterAssert(fileName);
        NSParameterAssert(mimeType);
    
        NSMutableDictionary *mutableHeaders = [NSMutableDictionary dictionary];
        [mutableHeaders setValue:[NSString stringWithFormat:@"form-data; name=\"%@\"; filename=\"%@\"", name, fileName] forKey:@"Content-Disposition"];
        [mutableHeaders setValue:mimeType forKey:@"Content-Type"];
    
        [self appendPartWithHeaders:mutableHeaders body:data];
    }
    

    而 Appends the HTTP header Content-Disposition: file; filename=#{filename}; name=#{name}" and Content-Type: #{mimeType}, followed by the encoded file data and the multipart form boundary.又是什么呢?


    可以看出来:

    name:就是前后端约定好的描述图片的字段,(比如传入avatar,那就是代表该图片是用户头像,后台在取的时候,也需要根据这个name来取出)

    fileName: 上传的文件名称

    https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Content-Disposition
    https://tools.ietf.org/html/rfc6266

    相关文章

      网友评论

          本文标题:iOS上传文件参数解析(HTTP header Content-

          本文链接:https://www.haomeiwen.com/subject/zboyzftx.html