let AI comment everything because well... yeah...
This commit is contained in:
@@ -1,15 +1,26 @@
|
||||
// * Shared method for sending files to the server
|
||||
// * Allows users to:
|
||||
// * - Select a file using the system file picker
|
||||
// * - Send the file contents to the server
|
||||
// * Legacy widget implementation is kept for reference
|
||||
|
||||
import 'package:fforte/screens/sharedMethods/http_request.dart';
|
||||
import 'package:file_picker/file_picker.dart';
|
||||
import 'dart:io';
|
||||
|
||||
/// Helper class for sending files to the server
|
||||
class SendFile {
|
||||
/// Let user pick a file and send its contents to the server
|
||||
/// Uses the system file picker for file selection
|
||||
/// Sends file content using the HttpRequestService
|
||||
static Future<void> sendFile() async {
|
||||
File? pickedFile;
|
||||
|
||||
// Open file picker dialog
|
||||
FilePickerResult? result = await FilePicker.platform.pickFiles();
|
||||
|
||||
if (result != null) {
|
||||
// Read and send file contents
|
||||
pickedFile = File(result.files.single.path!);
|
||||
String fileContent = await pickedFile.readAsString();
|
||||
await HttpRequestService.httpRequest(saveDataString: fileContent);
|
||||
@@ -17,64 +28,67 @@ class SendFile {
|
||||
}
|
||||
}
|
||||
|
||||
// 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))
|
||||
// ],
|
||||
// ),
|
||||
// );
|
||||
// }
|
||||
// }
|
||||
// * Legacy widget implementation kept for reference
|
||||
// * This was a stateful widget version of the file sender
|
||||
// * with additional UI elements and error handling
|
||||
/*
|
||||
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) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (response.statusCode == 201) {
|
||||
// Success handling was here
|
||||
} else {
|
||||
// Error handling was here
|
||||
}
|
||||
},
|
||||
child: Text(AppLocalizations.of(context)!.sendtoserver))
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user