iOS 업로드 파일(사진)의 AFNetworking 3.0 업로드 파일 업로드 이미지

7280 단어 ios서버

iOS 업로드 파일(사진)의 AFNetworking 3.0 업로드 파일 업로드 이미지


본인은 최근에 프로필 사진을 올리는 기능을 해서 iOS에서 사진을 올리는 자료를 많이 찾아서 특별히 정리했습니다. 여러분에게 도움이 되었으면 좋겠습니다!
  • 사진을 올리는 것도 사실post 요청이지만, 요청 헤더에서 서버에 분석 형식과 같은 정보를 알려야 합니다
  • NSString *charset = (__bridge NSString *)CFStringConvertEncodingToIANACharSetName(CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));
        NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; charset=%@; boundary=%@",charset,kBoundary];
        // multipart/form-data; boundary=---------------------------10114516222134344949368718355
        [request setValue:contentType forHTTPHeaderField:@"Content-Type"];
    
        request.HTTPBody = [self getHttpBody];
        [request setValue:[NSString stringWithFormat:@"%lu", (unsigned long) [[self getHttpBody] length]] forHTTPHeaderField:@"Content-Length"];
  • Kboundary는 서버에 요청체를 해석할 때 파일(그림)의 위쪽과 아래쪽 경계를 해석하는 것을 알려 줍니다
  • ** 그 다음에 요청체를 설정합니다. 요청체에 파일의 바이너리 데이터와 다른 속성, 그리고 상하 경계가 있어야 합니다. 이런 절차는 너무 번거롭고 번거롭습니다.그래서 열거하지 않고 간단한 방법을 알려드릴게요. - AFNetWorking,
  • // 
        AFHTTPSessionManager *sessionManager = [self manager];
        //JSON
        AFHTTPRequestSerializer *serializer = [AFJSONRequestSerializer serializer];
    [sessionManager POST:url parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
            //  
                UIImage *image = [UIImage imageWithContentsOfFile:@"/Users/wangfei/Desktop/100.jpg"];
                NSData *imageData = UIImageJPEGRepresentation(image, 1);
            NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
            formatter.dateFormat = @"yyyyMMddHHmmss";
            NSString *str = [formatter stringFromDate:[NSDate date]];
            NSString *fileName = [NSString stringWithFormat:@"%@.jpg", str];
    
            [formData appendPartWithFileData:imageData name:@"image" fileName:fileName mimeType:@"image/jpg"];
        } progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
            NSLog(@",,,,,,");
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
            NSLog(@"%@",error);
        }];
  • 주의해야 할 것은 제가 여기서 말한 것은afn3.0입니다. 만약에 당신이 2.0이라면 인터넷의 이전 문서를 참조하여 대응하는 방법을 찾을 수 있습니다.그 중에서 imageData는 파일을 업로드하는 바이너리 데이터name은 서버의 매개 변수 filename입니다. 업로드 서버의 이름인 mimeType은 업로드 파일의 형식입니다..

  • 다른 것을 쓰는 것은 너무 번거롭습니다. 여러분은 이afn을 사용할 수 있어서 매우 편리합니다.

    단축키

  • 굵기Ctrl + B
  • 사체Ctrl + I
  • 인용Ctrl + Q
  • 링크 삽입Ctrl + L
  • 코드 삽입Ctrl + K
  • 그림 삽입Ctrl + G
  • 제목 올리기Ctrl + H
  • 질서정연한 목록Ctrl + O
  • 무질서 목록Ctrl + U

  • .가로선Ctrl + R
  • 취소Ctrl + Z
  • 다시 한다Ctrl + Y

  • Markdown 및 확장


    Markdown은 읽기 쉽고 쓰기 쉬운 일반 텍스트 형식으로 문서를 작성하고 서식이 풍부한 HTML 페이지로 변환할 수 있는 경량급 태그 언어입니다.[위키피디아]
    간단한 기호를 사용하여 서로 다른 제목을 식별하고 일부 문자를 굵거나 기울임꼴로 표시하며 링크를 만드는 등 상세한 문법 참조 도움말을 사용합니다.
    이 편집기는 Markdown Extra를 지원하여 유용한 기능을 많이 확장했습니다.구체적으로 Github을 참고하세요.

    양식


    Markdown Extra 표 구문:
    프로젝트
    가격
    Computer
    $1600
    Phone
    $12
    Pipe
    $1
    콜론을 사용하여 정렬을 정의할 수 있습니다.
    프로젝트
    가격
    수량
    Computer
    1600원

    Phone
    12원
    십이
    Pipe
    1원
    234

    목록 정의


    Markdown Extra 정의 목록 구문:
    프로젝트 1
    프로젝트 2
    정의 A
    정의 B
    프로젝트 3
    정의C
    정의 D
    D 컨텐트 정의

    코드 블록


    코드 블록 구문은 표준 markdown 코드를 따릅니다. 예를 들어 다음과 같습니다.
    @requires_authorization
    def somefunc(param1='', param2=0):
        '''A docstring'''
        if param1 > param2: # interesting
            print 'Greater'
        return (param2 - param1 + 1) or None
    class SomeClass:
        pass
    >>> message = '''interpreter ... prompt'''

    각주


    각주 생성하기 1.

    카탈로그


    수납장[TOC] 디렉터리 생성:
  • iOS 파일 사진 업로드 AFNetworking 30 파일 업로드 이미지 업로드
  • 단축키
  • Markdown 및 확장
  • 목록을 정의합니다
  • 코드 블록
  • 각주
  • 목록
  • 수학 공식
  • UML 그림

  • 오프라인으로 블로그를 쓴다
  • 브라우저 호환


  • 수학 공식


    MathJax를 사용하여 LaTex 수학 공식을 렌더링합니다. 자세한 내용은 math 를 참조하십시오.stackexchange.com.
  • 행내 공식, 수학 공식:Γ(n)=(n−1)!∀n∈ℕ .
  • 블록 레벨 공식:

  • x=−b±b2−4ac‾‾‾‾‾‾‾‾‾√2a
    더 많은 LaTex 문법은 여기를 참고하십시오.

    UML 그림:


    순서도를 렌더링할 수 있습니다.
    Created with Rapha ël 2.1.0장 세 장이사는 멍하니 서서 피를 토할 정도로 바쁜데 쓸 시간이 어디 있겠느냐고 말했다.
    또는 흐름도:
    Created with Rapha ël 2.1.0 내 작업 확인 시작?종료 yes no
  • 서열도 문법에 관해서는 여기를 참고하십시오
  • 절차도 문법에 관해서는 여기를 참고하십시오

  • 오프라인으로 블로그를 쓰다


    사용자가 네트워크가 없는 경우에도 이 편집기를 통해 오프라인으로 블로그를 쓸 수 있습니다. (사용한 브라우저에서 write.blog.csdn.net/mdeditor를 직접 입력하면 됩니다. Markdown 편집기는 브라우저를 사용하여 오프라인으로 저장하여 내용을 로컬에 저장합니다.
    사용자가 블로그를 작성하는 동안 컨텐트는 브라우저 캐시에 실시간으로 저장되며 사용자가 브라우저를 닫거나 다른 예외 상황에서는 컨텐트를 잃어버리지 않습니다.사용자가 브라우저를 다시 열면 마지막으로 편집하고 있는 발표되지 않은 내용이 표시됩니다.
    블로그가 발표되면 로컬 캐시가 삭제됩니다. 
    사용자는 브라우저를 바꾸거나 캐시를 지워도 내용을 잃어버리지 않고 쓰고 있는 블로그를 서버 초고함에 저장할 수 있습니다.
    주의: 브라우저 저장은 대부분 신뢰할 수 있지만 데이터 안전을 위해 네트워크가 연결된 후에는 반드시 제때에 발표하거나 서버 초고함에 저장하십시오.

    브라우저 호환

  • 현재 이 편집기는 Chrome 브라우저에서 가장 완전하게 지원됩니다.최신 버전의 Chrome을 사용하는 것이 좋습니다
  • IE9 이하는 지원되지 않습니다
  • IE9, 10, 11에 다음과 같은 문제가 있습니다.
  • 오프라인 기능은 지원되지 않습니다
  • IE9은 파일 가져오기 내보내기를 지원하지 않습니다
  • IE10은 드래그 파일 가져오기를 지원하지 않습니다


  • 여기는 각주 내용입니다.↩

    좋은 웹페이지 즐겨찾기