cari

Rumah  >  Soal Jawab  >  teks badan

ios - AFNetworking上传图片,

我这里用AFNetworking上传图片
报The data couldn’t be read because it isn’t in the correct format.有人帮忙看看是哪里出问题了么?下面是我写的代码。

    AFHTTPRequestOperationManager *m = [AFHTTPRequestOperationManager manager];
    m.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html", @"application/json", nil];
    m.requestSerializer = [AFHTTPRequestSerializer serializer];
    [m.requestSerializer setValue:@"multipart/form-data" forHTTPHeaderField:@"Content-Type"];
    
    NS_APPDebugLog(@"请求链接:%@/%@", urlString, parametersDic);
    
    [m POST:@"http://59.48.96.118:7001/portal/SI_USR00025/upload.do" parameters:nil
                constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
        for (int i = 0; i < imagePickerArray.count; i++)
        {
            UIImage *portraitImg = imagePickerArray[i];
            portraitImg = [UIImage scaleToSize:portraitImg];
            portraitImg = [portraitImg fixOrientation];
            NSData *imageData = [NSData compressImage:portraitImg];
            [formData appendPartWithFileData:imageData
                                        name:[NSString stringWithFormat:@"img.img%d", i+1]
                                    fileName:@"image.png"
                                    mimeType:@"image/png"];
        }
    } success:^(AFHTTPRequestOperation * _Nonnull operation, id  _Nonnull responseObject) {
        NSLog(@"成功");
    } failure:^(AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) {
        NSLog(@"失败");
        dispatch_async(dispatch_get_main_queue(),^{failure(error);});
    }];
高洛峰高洛峰2889 hari yang lalu350

membalas semua(3)saya akan balas

  • PHPz

    PHPz2017-04-18 09:20:14

    Berikut ialah beberapa soalan:

    1. Terdapat beberapa percanggahan dalam tetapan mim:

      [m.requestSerializer setValue:@"multipart/form-data" forHTTPHeaderField:@"Content-Type"];
       [formData appendPartWithFileData:imageData name:[NSString stringWithFormat:@"img.img%d", i+1] fileName:@"image.png" mimeType:@"image/png"];

      Anda telah menetapkan dua mim di dua tempat ini, multipart/form-data dan image/png. Mana satu betul? Perlu berkomunikasi dengan bahagian belakang.

    2. Mari hubungi bahagian belakang untuk menyemak Sudahkah anda menerima permintaan anda? Apakah kandungan yang diminta? Apa yang dia pulangkan? Ralat ini nampaknya biasanya dilaporkan semasa menghuraikan json Mungkin latar belakang tidak mengembalikan json yang sah. Selain itu, permintaan anda adalah untuk memuat naik berbilang fail sekaligus. Saya tidak tahu sama ada antara muka bahagian belakang anda menyokongnya. Anda boleh cuba memuat naik hanya satu gambar.

    3. Tidak perlu melaraskan blok AFNetworking dispatch_async(dispatch_get_main_queue()... Ia telah membantu anda kembali ke urutan utama untuk pelaksanaan.

    balas
    0
  • 大家讲道理

    大家讲道理2017-04-18 09:20:14

    Bolehkah anda mencetak data imageData?

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 09:20:14

    Sudahkah anda menyelesaikannya?
    Saya juga menemui laporan Data tidak dapat dibaca kerana ia tidak dalam format yang betul.
    Tetapi sebenarnya muat naik imej berjaya
    Kod pelanggan:- (IBAction)upload:(id )pengirim {

    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
     NSString *url3 = @"http://127.0.0.1:5000/upload";

    [parameter POST:url3 pengurus:nil constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {

        UIImage *image = [UIImage imageNamed:@"star"];
        NSData *imageData = UIImagePNGRepresentation(image);
        NSString *fileName = @"star.png";
        [formData appendPartWithFileData:imageData
                                    name:@"file"
                                fileName:fileName
                                mimeType:@"image/png"];    
    } progress:^(NSProgress *_Nonnull uploadProgress) {
    } success:^(NSURLSessionDataTask *_Nonnull task, id _Nullable responseObject) {
        NSLog(@"upload completed:%@",responseObject);
    } failure:^(NSURLSessionDataTask *_Nullable task, NSError * _Nonnull error) {
        NSLog(@"upload failed");
        NSLog(@"%@",error.localizedDescription);
    }];

    }

    Kod belakang (python):
    kelas terima(tenang.Sumber):

    def post(self):
        file = request.files['file']
        file.save(os.path.join(app.config['UPLOAD_FOLDER'], 'star2.png'))
        return 'upload completed'
    

    api.add_resource(receive, '/upload', methods=['POST'])

    balas
    0
  • Batalbalas