open:fastapi-form

FastAPI Form

snippet.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))
snippet.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<File> 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 [];
    }
  }
}
  • open/fastapi-form.txt
  • 마지막으로 수정됨: 2020/06/02 09:25
  • 저자 127.0.0.1