uploaded_file.dart 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import 'dart:convert';
  2. import 'dart:typed_data' show Uint8List;
  3. class FFUploadedFile {
  4. const FFUploadedFile({
  5. this.name,
  6. this.bytes,
  7. this.height,
  8. this.width,
  9. this.blurHash,
  10. this.originalFilename = '',
  11. });
  12. final String? name;
  13. final Uint8List? bytes;
  14. final double? height;
  15. final double? width;
  16. final String? blurHash;
  17. final String originalFilename;
  18. @override
  19. String toString() =>
  20. 'FFUploadedFile(name: $name, bytes: ${bytes?.length ?? 0}, height: $height, width: $width, blurHash: $blurHash, originalFilename: $originalFilename,)';
  21. String serialize() => jsonEncode(
  22. {
  23. 'name': name,
  24. 'bytes': bytes,
  25. 'height': height,
  26. 'width': width,
  27. 'blurHash': blurHash,
  28. 'originalFilename': originalFilename,
  29. },
  30. );
  31. static FFUploadedFile deserialize(String val) {
  32. final serializedData = jsonDecode(val) as Map<String, dynamic>;
  33. final data = {
  34. 'name': serializedData['name'] ?? '',
  35. 'bytes': serializedData['bytes'] ?? Uint8List.fromList([]),
  36. 'height': serializedData['height'],
  37. 'width': serializedData['width'],
  38. 'blurHash': serializedData['blurHash'],
  39. 'originalFilename': serializedData['originalFilename'] ?? '',
  40. };
  41. return FFUploadedFile(
  42. name: data['name'] as String,
  43. bytes: Uint8List.fromList(data['bytes'].cast<int>().toList()),
  44. height: data['height'] as double?,
  45. width: data['width'] as double?,
  46. blurHash: data['blurHash'] as String?,
  47. originalFilename: data['originalFilename'] as String,
  48. );
  49. }
  50. @override
  51. int get hashCode => Object.hash(
  52. name,
  53. bytes,
  54. height,
  55. width,
  56. blurHash,
  57. originalFilename,
  58. );
  59. @override
  60. bool operator ==(other) =>
  61. other is FFUploadedFile &&
  62. name == other.name &&
  63. bytes == other.bytes &&
  64. height == other.height &&
  65. width == other.width &&
  66. blurHash == other.blurHash &&
  67. originalFilename == other.originalFilename;
  68. }