create static method
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';
}