| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- // Automatic FlutterFlow imports
- import '/backend/schema/structs/index.dart';
- import '/flutter_flow/flutter_flow_theme.dart';
- import '/flutter_flow/flutter_flow_util.dart';
- import 'index.dart'; // Imports other custom actions
- import '/flutter_flow/custom_functions.dart'; // Imports custom functions
- import 'package:flutter/material.dart';
- // Begin custom action code
- // DO NOT REMOVE OR MODIFY THE CODE ABOVE!
- import 'dart:async';
- import 'dart:convert';
- import 'package:http/http.dart' as http;
- Future<dynamic> bestandUpload(
- FFUploadedFile file,
- String uploadUrl,
- String sessionName,
- String sessionId,
- String token,
- ) async {
- if (file.bytes == null || file.bytes!.isEmpty) {
- return {'success': false, 'error': 'Geen bestand geselecteerd'};
- }
- final bestandsnaam = (file.name?.trim().isNotEmpty ?? false)
- ? file.name!.trim()
- : 'upload.jpg';
- final base64Data = base64Encode(file.bytes!);
- final headers = <String, String>{
- 'Accept': 'application/json',
- 'Content-Type': 'application/json',
- };
- if (sessionName.trim().isNotEmpty && sessionId.trim().isNotEmpty) {
- headers['Cookie'] = '$sessionName=$sessionId';
- }
- if (token.trim().isNotEmpty) {
- headers['X-CSRF-Token'] = token;
- }
- final body = jsonEncode({
- 'bestandsnaam': bestandsnaam,
- 'base64_data': base64Data,
- });
- print('========================================');
- print('BESTAND UPLOAD');
- print('URL : $uploadUrl');
- print('Bestandsnaam: $bestandsnaam');
- print('Bytes : ${file.bytes!.length}');
- print('========================================');
- try {
- final response = await http
- .post(Uri.parse(uploadUrl), headers: headers, body: body)
- .timeout(const Duration(seconds: 30));
- print('========================================');
- print('STATUS : ${response.statusCode}');
- print('BODY');
- print(response.body);
- print('========================================');
- dynamic data;
- try {
- data = jsonDecode(response.body);
- } catch (_) {
- data = response.body;
- }
- if (response.statusCode >= 200 && response.statusCode < 300) {
- return {
- 'success': true,
- 'fid': data['fid']?.toString() ?? '',
- 'url': data['url']?.toString() ?? '',
- };
- }
- return {
- 'success': false,
- 'statusCode': response.statusCode,
- 'error':
- data is Map ? (data['message'] ?? data.toString()) : data.toString(),
- };
- } on TimeoutException {
- return {'success': false, 'error': 'Timeout'};
- } catch (e, stack) {
- print(e);
- print(stack);
- return {'success': false, 'error': e.toString()};
- }
- }
|