| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- // 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 ingevoerdeUrl = uploadUrl.trim();
- final apiBase = FFAppState().apiBaseUrl.trim().isEmpty
- ? 'https://uitgaanskrant.com'
- : FFAppState().apiBaseUrl.trim();
- uploadUrl = (ingevoerdeUrl.startsWith('http://') ||
- ingevoerdeUrl.startsWith('https://'))
- ? ingevoerdeUrl
- : apiBase +
- (ingevoerdeUrl.startsWith('/') ? ingevoerdeUrl : '/$ingevoerdeUrl');
- 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()};
- }
- }
|