added send file to server function

This commit is contained in:
2024-03-26 11:08:02 +01:00
parent 52f0748dcb
commit e70b49e3a7
13 changed files with 94 additions and 10 deletions

View File

@@ -1,4 +1,5 @@
todo: todo:
TEST SEND FILE TO SERVER FUNCTION
maybe auch vorschläge aus templates in dropdown menüs anzeigen maybe auch vorschläge aus templates in dropdown menüs anzeigen
im englischen abändern im englischen abändern
zurückfeld in datenansicht zurückfeld in datenansicht
@@ -8,8 +9,7 @@ fehler beim speichern anzeigen
nach koordinaten lkr auswählen (esri-leaflet-geocoder) nach koordinaten lkr auswählen (esri-leaflet-geocoder)
fix ktage und nebeneinander positioniere fix ktage und nebeneinander positioniere
textdateien auch an server senden textdateien auch an server senden
ausvon und ausbis fixen (falsches datum übergeben (20000-01-01)) error check wenn dateiauswahl abgebrochen wurde einfügen
keine ahnung obs funktioniert: keine ahnung obs funktioniert:
eintrg in db wenn http response (in sent column) eintrg in db wenn http response (in sent column)

View File

@@ -2,7 +2,7 @@ import 'dart:async';
import 'dart:convert'; import 'dart:convert';
import 'dart:io'; import 'dart:io';
import 'package:fforte/addCam/cam_widgets.dart'; import 'package:fforte/addCam/cam_widgets.dart';
import 'package:fforte/db_helper.dart'; import 'package:fforte/other/db_helper.dart';
import 'package:file_picker/file_picker.dart'; import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart';

View File

@@ -1,5 +1,5 @@
// ignore_for_file: non_constant_identifier_names // ignore_for_file: non_constant_identifier_names
import 'package:fforte/db_helper.dart'; import 'package:fforte/other/db_helper.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:flutter_map/flutter_map.dart'; import 'package:flutter_map/flutter_map.dart';

View File

@@ -47,7 +47,7 @@ class HomePage extends StatelessWidget {
child: Text(AppLocalizations.of(context)!.addplace)), child: Text(AppLocalizations.of(context)!.addplace)),
ElevatedButton(onPressed: () => Navigator.pushNamed(context, '/viewCams'), ElevatedButton(onPressed: () => Navigator.pushNamed(context, '/viewCams'),
child: Text(AppLocalizations.of(context)!.viewplaces)), child: Text(AppLocalizations.of(context)!.viewplaces)),
ElevatedButton(onPressed: () {}, child: Text(AppLocalizations.of(context)!.sendfile))
], ],
)), )),
], ],

View File

@@ -84,5 +84,7 @@
"filelocation": "Ort der zuletzt gespeicherten Datei:", "filelocation": "Ort der zuletzt gespeicherten Datei:",
"open": "öffnen", "open": "öffnen",
"date": "Datum", "date": "Datum",
"location": "Standort" "location": "Standort",
"sendfile": "Datei zum Server schicken",
"pickfile": "Datei auswählen"
} }

View File

@@ -407,6 +407,16 @@
"location": "Location", "location": "Location",
"@location": { "@location": {
"description": "Location text" "description": "Location text"
},
"sendfile": "Send file to server",
"@sendfile": {
"description": "Send file to server button"
},
"pickfile": "Pick file",
"@pickfile": {
"description": "Pick file button"
} }
} }

View File

@@ -1,6 +1,6 @@
import 'package:fforte/addCam/add_cam_main.dart'; import 'package:fforte/addCam/add_cam_main.dart';
import 'package:fforte/intro_screen.dart'; import 'package:fforte/other/intro_screen.dart';
import 'package:fforte/settings.dart'; import 'package:fforte/other/settings.dart';
import 'package:fforte/viewCam/view_cams.dart'; import 'package:fforte/viewCam/view_cams.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flex_color_scheme/flex_color_scheme.dart'; import 'package:flex_color_scheme/flex_color_scheme.dart';

71
lib/other/send_file.dart Normal file
View File

@@ -0,0 +1,71 @@
import 'dart:convert';
import 'package:dio/dio.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'dart:io';
import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
class SendFile extends StatefulWidget {
const SendFile({super.key});
@override
State<SendFile> createState() => _SendFileState();
}
class _SendFileState extends State<SendFile> {
File? pickedFile;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Column(
children: [
ElevatedButton(
onPressed: () async {
FilePickerResult? result =
await FilePicker.platform.pickFiles();
if (result != null) {
pickedFile = File(result.files.single.path!);
} else {
pickedFile = File("");
}
},
child: Text(AppLocalizations.of(context)!.pickfile)),
Text(pickedFile.toString()),
ElevatedButton(
onPressed: () async {
final dio = Dio();
final SharedPreferences prefs =
await SharedPreferences.getInstance();
String? fileContent = await pickedFile?.readAsString();
dio.options.responseType = ResponseType.plain;
Response response = Response(
requestOptions: RequestOptions(path: ''), statusCode: 400);
try {
response = await dio.post(prefs.getString('apiAddress') ?? "",
data: jsonEncode(fileContent));
} on DioException catch (e) {
if (e.response?.statusCode == 500) {
/* print('-------------------------');
print('code 500'); */
return;
}
}
if (response.statusCode == 201) {
// print(response.statusCode);
} else {
//print(response.statusCode);
}
},
child: Text(AppLocalizations.of(context)!.sendtoserver))
],
),
);
}
}

View File

@@ -1,5 +1,5 @@
import 'package:fforte/addCam/add_cam_main.dart'; import 'package:fforte/addCam/add_cam_main.dart';
import 'package:fforte/db_helper.dart'; import 'package:fforte/other/db_helper.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:flutter_popup_card/flutter_popup_card.dart'; import 'package:flutter_popup_card/flutter_popup_card.dart';

View File

@@ -46,3 +46,4 @@
21 mär 4h 15 min 21 mär 4h 15 min
23 mär 2h 15 min 23 mär 2h 15 min
24 mär 1h 24 mär 1h
26 mär beginn 10:20