Сценарий:
- У меня есть блокнот для подписи, и его пункты (список) сохраняются на SQL сервере.
- Я извлекаю его из базы данных и отображаю на другом экране.
Код сохранения флаттера
Я просто предоставлю важный код, который я думаю, что имеют отношение.
// This is save button
onPressed() {
data = {
'Signature' : _fbKey.currentState.value['signature'].toString()
}
}
// trigger _save function
if (_fbKey.currentState.saveAndValidate()) {
_save(data);
}
// _save function
_save(data) async {
final response = await http.post('url here..', body: data);
}
Laravel коды Я предоставлю код, который я также считаю, имеют отношение
Route::middleware('admin')->post('link...', function (Request $request) {
$user = new User;
$user->Signature= $request->Signature;
$user->save();
return response()->json([
'message' => 'Success',
'data' => $user
], 200);
});
Flutter Fetch Code
getData() async {
final response = await http.get('url goes here');
var signRes = jsonDecode(response.body);
String rawSign = signRes['data']['Signature'];
print(rawSign); // output [137, ....so on]
List<int> list = rawSign.codeUnits;
print(list); // the output that I expected suddenly change to [91, ..... so on]
Uint8List signature = Uint8List.fromList(list);
}
@override
Widget build(BuildContext context) {
return Scaffold(
.......
.......
child: Container(
child: Image.memory(signature);
)
)
}
SQL Сервер
column : Signature
datatype: nvarchar(max)
Исключение, которое я получил:
Не удалось создать экземпляр кода изображения c
Вопрос
- Как видите, точка (Список), которую я получил с панели подписи, это le git точек (Список) но я конвертирую его в
toString()
при сохранении, потому что Flutter
вызывает исключение, говоря, что не может разыграть Uint8Arrat to String
. Итак, возможно ли получить Точки списка строк из базы данных и не преобразовать их в .codeUnits
? Потому что при этом value changes from what expected
.