본문 바로가기

개발하자

펄럭이는 JSON을 사용하여 포스트를 통해 이미지를 보내는 방법은 무엇입니까?

반응형

펄럭이는 JSON을 사용하여 포스트를 통해 이미지를 보내는 방법은 무엇입니까?

갤러리에서 이미지를 캡처하거나 선택하는 기능을 하는 플러터 앱을 만들고 있지만 클라이언트 측에서 이미지를 서버에 게시하는 방법에 어려움을 겪고 있습니다.

제가 수집한 바로는 이미지 파일을 바이트로 변환하여 BASE64로 전송하면 JSON을 통해 로컬 이미지를 전송할 수 있습니다.

import 'dart:convert';
import 'package:crypto/crypto.dart';

Future<Map> _avatarSubmit() async {
    String url = api + '/api/account';
    http.Response response = await http.post(Uri.encodeFull(url), headers: {
      "Accept": "application/json",
      "Cookie": "MYCOOKIE=" + sessionCookie2 + "; MYTOKENS=" + sessionCookie3,
      "Content-type": "multipart/form-data",
    }, body: {
      "image": "",
    });
    Map content = JSON.decode(response.body);
    return content;
  }

제 질문은 장치의 이미지 파일을 바이트로 변환하는 방법입니다. 그러면 플러그인을 사용하여 BASE64로 변환할 수 있습니까?

잘 부탁드립니다.




플러그인이 이미지의 filePath를 제공하므로 파일 클래스 from dart:io를 사용하여 이미지를 로드하고 BASE64를 dart:convert에서 BASE64 문자열로 변환할 수 있습니다.

다음은 이 작업을 수행하는 방법입니다:

import 'dart:io';
import 'dart:convert';

File imageFile = new File(imageFilePath);
List<int> imageBytes = imageFile.readAsBytesSync();
String base64Image = BASE64.encode(imageBytes);

반응형