create static method

Future<String> create(
  1. UploadedFile file, {
  2. String subdirectory = '',
})

Saves an uploaded file to the server.

Generates a unique filename to avoid collisions, ensures the target directory exists, and writes the file's content to disk.

file - The UploadedFile object from the request. subdirectory - Optional subdirectory within the base directory.

Returns the public URL of the saved file.

Implementation

static Future<String> create(UploadedFile file,
    {String subdirectory = ''}) async {
  final String uniqueFileName = '${Uuid().v4()}_${file.filename}';
  final String uploadPath = '$_baseDir/$subdirectory';

  final Directory dir = Directory(uploadPath);
  if (!await dir.exists()) {
    await dir.create(recursive: true);
  }

  final File newFile = File('$uploadPath/$uniqueFileName');
  await file.content.pipe(newFile.openWrite());

  return '$_baseUrl/$subdirectory/$uniqueFileName';
}