Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 我想将签名发送到我的sql数据库_Flutter - Fatal编程技术网

Flutter 我想将签名发送到我的sql数据库

Flutter 我想将签名发送到我的sql数据库,flutter,Flutter,谁能帮助我如何在我的phpmyadmin中插入签名?我想在我的phpmyadmin中保存签名 //为我们的Flitter应用程序导入 import 'dart:convert'; import 'dart:math'; import 'dart:typed_data'; import 'dart:ui' as ui; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'p

谁能帮助我如何在我的phpmyadmin中插入签名?我想在我的phpmyadmin中保存签名

//为我们的Flitter应用程序导入

import 'dart:convert';
import 'dart:math';
import 'dart:typed_data';
import 'dart:ui' as ui;

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_signature_pad/flutter_signature_pad.dart';
    
void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await SystemChrome.setPreferredOrientations(
      [DeviceOrientation.landscapeRight]);
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

    class MyHomePage extends StatefulWidget {
      MyHomePage({Key key}) : super(key: key);
    
      @override
      _MyHomePageState createState() => _MyHomePageState();
    }
    //this are the strings declaration
    class _WatermarkPaint extends CustomPainter {
      final String price;
      final String watermark;
    
      _WatermarkPaint(this.price, this.watermark);
    
      @override
      void paint(ui.Canvas canvas, ui.Size size) {
        canvas.drawCircle(Offset(size.width / 2, size.height / 2), 5.8,
            Paint()..color = Colors.green);
      }
    
      @override
      bool shouldRepaint(_WatermarkPaint oldDelegate) {
        return oldDelegate != this;
      }
    
      @override
      bool operator ==(Object other) =>
          identical(this, other) ||
          other is _WatermarkPaint &&
              runtimeType == other.runtimeType &&
              price == other.price &&
              watermark == other.watermark;
    
      @override
      int get hashCode => price.hashCode ^ watermark.hashCode;
    }
    
    class _MyHomePageState extends State<MyHomePage> {
      ByteData _img = ByteData(0);
      var color = Colors.red;
      var strokeWidth = 3.0;
      final _sign = GlobalKey<SignatureState>();
    
      @override
      //this line of code is for the signature pad 
      Widget build(BuildContext context) {
        return Scaffold(
          body: Column(
            children: <Widget>[
              Expanded(
                child: Container(
                  child: Padding(
                    padding: const EdgeInsets.all(5.0),
                    child: Signature(
                      color: Colors.black,
                      key: _sign,
                      onSign: () {
                        final sign = _sign.currentState;
                        debugPrint('${sign.points.length} points in the signature');
                      },
                      backgroundPainter: _WatermarkPaint("2.0", "2.0"),
                      strokeWidth: strokeWidth,
                    ),
                  ),
                  color: Colors.black12,
                ),
              ),
              _img.buffer.lengthInBytes == 0
                  ? Container()
                  : LimitedBox(
                      maxHeight: 200.0,
                      child: Image.memory(_img.buffer.asUint8List())),
导入'dart:convert';
导入“dart:math”;
导入“dart:键入的_数据”;
将“dart:ui”导入为ui;
进口“包装:颤振/材料.省道”;
导入“包:flifter/services.dart”;
进口“包装:颤振\签名\垫/颤振\签名\垫.省道”;
void main()异步{
WidgetsFlutterBinding.ensureInitialized();
等待系统chrome.setPreferredOrientations(
[DeviceOrientation.landscapeRight]);
runApp(MyApp());
}
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“颤振演示”,
主题:主题数据(
主样本:颜色。蓝色,
),
主页:MyHomePage(),
);
}
}
类MyHomePage扩展StatefulWidget{
MyHomePage({Key}):超级(Key:Key);
@凌驾
_MyHomePageState createState()=>\u MyHomePageState();
}
//这是字符串声明
class\u WatermarkPaint扩展了CustomPainter{
最终字符串价格;
最终字符串水印;
_WatermarkPaint(this.price,this.watermark);
@凌驾
虚空绘制(ui.Canvas画布,ui.Size){
画布.画圈(偏移量(尺寸.宽度/2,尺寸.高度/2),5.8,
油漆()…颜色=颜色。绿色);
}
@凌驾
布尔应该重新绘制(\u水印绘制旧委托){
返回oldDelegate!=此;
}
@凌驾
布尔运算符==(对象其他)=>
相同的(这个,其他)||
另一种是水纹漆&&
runtimeType==other.runtimeType&&
价格=其他价格&&
水印==其他.水印;
@凌驾
int get hashCode=>price.hashCode^watermark.hashCode;
}
类_MyHomePageState扩展状态{
ByteData _img=ByteData(0);
var color=Colors.red;
var strokeWidth=3.0;
最后一个符号=GlobalKey();
@凌驾
//这行代码用于签名板
小部件构建(构建上下文){
返回脚手架(
正文:专栏(
儿童:[
扩大(
子:容器(
孩子:填充(
填充:常数边集全部(5.0),
孩子:签名(
颜色:颜色,黑色,
键:_符号,
签名:(){
最终符号=_sign.currentState;
debugPrint(“${sign.points.length}签名中的点”);
},
背景画家:_WatermarkPaint(“2.0”、“2.0”),
strokeWidth:strokeWidth,
),
),
颜色:颜色。黑色,
),
),
_img.buffer.lengthInBytes==0
?容器()
:LimitedBox(
最大高度:200.0,
子项:Image.memory(_img.buffer.asUint8List()),
//此代码由保存和清除按钮组成 纵队( 儿童:[ 划船( mainAxisAlignment:mainAxisAlignment.center, 儿童:[ 材料按钮( 颜色:颜色。绿色, onPressed:()异步{ 最终符号=_sign.currentState; 最终图像=等待符号.getData(); var data=wait image.toByteData( 格式:ui.ImageByteFormat.png); sign.clear(); 最终编码= base64.encode(data.buffer.asUint8List()); 设置状态(){ _img=数据; }); 调试打印(“按下”+编码); }, 子项:文本(“保存”), 大小盒子( 宽度:100, ), 材料按钮( 颜色:颜色。灰色, 已按下:(){ 最终符号=_sign.currentState; sign.clear(); 设置状态(){ _img=字节数据(0); }); 调试打印(“已清除”); }, 子项:文本(“清除”), ], ), ], ) ], ), ); } }