# FastAPI Form ```py @router.post('/info/form') async def wine_info_post(name_ko: str = Form(None), files: List[UploadFile] = File(None), db: AsyncIOMotorClient = Depends(get_mongodb)): """file 전송을 위해서 form 사용""" print(f'name_ko: {name_ko}') print(files) # return {"file_sizes": [file.filename for file in files]} return JSONResponse(content=jsonable_encoder(files)) ``` ## sending file from dart ```dart import 'dart:io'; import 'package:dio/dio.dart'; import 'package:wine_talk_flutter/api/api.dart'; import 'package:wine_talk_flutter/model/wine_info.dart'; class WineInfoApi extends Api { Future add(WineInfo wineInfo, List fileList) async { try { Dio dio = new Dio(); wineInfo.nameKo = 'my name ko'; var formData = FormData.fromMap(wineInfo.toJson()); formData.files.add( MapEntry( "files", MultipartFile.fromFileSync(fileList[0].path, filename: fileList[0].path), ), ); String url = '$baseUrl/wine/info/form'; Response response = await dio.post(url, data: formData); print(response); } catch (e) { print(e); return []; } } } ``` ## 참고 - https://fastapi.tiangolo.com/tutorial/request-forms/ - https://pub.dev/packages/dio