TIL #011
191116 토
오늘 배운 점
<Flutter>
1. 다중 이미지 업로드
- multi_image_picker 패키지를 활용한 다중 이미지 업로드 기능을 구현하였다.
import 'package:multi_image_picker/multi_image_picker.dart';
void upload() async {//선택한 이미지 POST로 업로드
var i = 0;
var uri = Uri.parse(Global.serverUrl + '/updateImg_test');
http.MultipartRequest request = http.MultipartRequest('POST', uri);
for (var asset in images) {
i++;
var multipartFile = http.MultipartFile.fromBytes('photo',
(await asset.getByteData()).buffer.asUint8List(),
filename: 'photo$i.jpg',
contentType: MediaType("image", "jpg"),
);
request.files.add(multipartFile);
}
request.headers.addAll(headers);
var response = await request.send();
print(response.statusCode);
response.stream.transform(utf8.decoder).listen((value) {
print(value);
});
}
Future<void> loadAssets() async {//이미지 로드
setState(() {
images = List<Asset>();
});
List<Asset> resultList = List<Asset>();
String error;
try{
resultList = await MultiImagePicker.pickImages(
maxImages: 3,
enableCamera: true,
selectedAssets: images,
cupertinoOptions: CupertinoOptions(takePhotoIcon: "chat"),
materialOptions: MaterialOptions(
allViewTitle: "All Photos",
useDetailsView: false,
),
);
for (var r in resultList) {
var t = await r.filePath;
print(t);
}
} on Exception catch (e) {
error = e.toString();
}
if (!mounted) return;
setState(() {
images = resultList;
_error = error;
});
}
SliverGrid.count(//선택한 이미지 grid 형태로 미리보기
children: List.generate(images.length, (index) {
Asset asset = images[index];
return AssetThumb(
asset: asset,
width: 300,
height: 300,
);
},
),
crossAxisCount: 3,
),
2. 게시물 업로드 기능 구현 시작
- 이미지 및 간단한 캡션 테스트를 입력하고 업로드하는 기능을 작업중이다.
<Devfest>
그리고 학교에서 진행된 DevFest에 다녀왔는데 이 내용은 서비스 개발과는 무관해서 개인 블로그에만 올려두겠다!
내일 배울 점
1. 게시물 작성 기능 에러 해결
2. 프로필 설정 화면 만들기
3. 과제, 과제, 과제....
더보기
- 과제 너무 많다 하기 싫다...
- 그새 TIL 10개 돌파!
'삽질하는 개발자 hashblown' 카테고리의 다른 글
프론트엔드 개발자의 TIL #013 (0) | 2019.11.20 |
---|---|
프론트엔드 개발자의 TIL #012 (0) | 2019.11.18 |
프론트엔드 개발자의 TIL #010 (0) | 2019.11.13 |
프론트엔드 개발자의 TIL #009 (0) | 2019.11.12 |
프론트엔드 개발자의 TIL #008 (0) | 2019.11.11 |
댓글