🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / FLUTTER / ftp dosya yükleme indirme file picker kullanımı

1-) FLUTTER - ftp dosya yükleme indirme file picker kullanımı

 

kaynak : https://pub.dev/packages/file_picker/install

kaynak : https://pub.dev/packages/file_case

 

import 'package:dio/dio.dart' as dio;
import 'package:http/http.dart' as http;
import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart';

import 'dart:html' as html;
import 'dart:html';

 

açıklama : pickFiles da ,withData: true ' yı unutma kaynak https://stackoverflow.com/questions/73659842/flutter-file-picker-is-returning-null-bytes

 

 1- certifika yükleme  

 

void main() {
  
HttpOverrides.global = new MyHttpOverrides();
  runApp(
const MyApp());
}

 

class MyHttpOverrides extends HttpOverrides{
  
@override
  
HttpClient createHttpClient(SecurityContext? context){
    
return super.createHttpClient(context)
      ..
badCertificateCallback = (X509Certificate cert, String host, int port)=> true;
  }
}

 

 

 

 1- dosya seçme  flutter pub add file_picker

 

void getSelectedFileName() async {
  
final result = await FilePicker.platform
      
.pickFiles(allowMultiple: false, type: FileType.any,withData: true);
  
if (result == null) return;
  
// ploadFiles(result.files);
  
ploadFilesHttp(result.files);
}

 

 

 2- dosya gönderme dio ile flutter pub add dio

 

void ploadFiles(List<PlatformFile> platformFiles) async {
  
String url = "https://192.168.1.100:45455/api/File/postFile";

  
final formData = dio.FormData();

  
formData.files.addAll(platformFiles.map((platformFile) =>
      
MapEntry(
          
'file',
          
dio.MultipartFile.fromBytes(platformFile.bytes as List<int>,
              filename: platformFile.
name))));

  
final response = await dio.Dio().post(url, data: formData);
  print(
"a");
}

 

 

3- dosya gönderme http ile flutter pub add http

 

void ploadFilesHttp(List<PlatformFile> platformFiles) async {
  
String url = "https://192.168.1.100:45455/api/File/postFile";

  
final response =
  
http.MultipartRequest('POST', Uri.parse(url))

    ..
files.addAll(platformFiles.map((file) =>
        
http.MultipartFile.fromBytes(
            
'file', file.bytes as List<int>,
            filename: file.
name)));

  
final finalResponse = await response.send();
  print(
"aaw");
}

 

 

3.0.1- dosya gönderme http ile flutter pub add http

 

void ploadFilesHttp23(List<PlatformFile> platformFiles) async {
  print(
"aa");
  
String url = "https://roketnot.com/upload-profile";

  
var headers = <String, String>{
    
'Authorization':
    
'JWT eyJhbGciOiJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCLPNJ748',
  };

  
final request = http.MultipartRequest('POST', Uri.parse(url));
  
request.headers.addAll(headers);

  platformFiles.forEach((file)
async {

    
http.MultipartFile multipartFile = await http.MultipartFile.fromPath(
        
'apiqueryname', file.path!);

    
request.files.add(multipartFile);



    
final finalResponse = await request.send();
    print(
"aaw"+finalResponse.statusCode.toString());

  });

 

 

 

3.1- dosya indirme -> api tarafından stream olarak dönecek. 6'ıncı maddedeki gibi

import 'dart:html' as html;

 

 

void getImage() async {
  
try {
    
var uri = Uri.parse("https://192.168.1.100:45455/api/File/downloadFile");
    
final response = await http.post(uri,
      headers: {
"Content-Type": "application/json"},
    );
    
if (response.contentLength == 0) {
      
return;
    }
    
final content = base64Encode(response.bodyBytes);

    
final anchor = html.AnchorElement(href: 'data:application/octet-stream;base64,$content')
      ..
download = "image.rar"
      
..target = 'blank'
       
..click();
  }
  
catch (value) {
    print(
value);
  }
}

 

 

 

 

4- .NET CORE TARAFINDAN ALMAK

 

 

using Microsoft.AspNetCore.Mvc;

using System.Net;

 

namespace KaliteApi.Controllers

{

    [Route("api/[controller]")]

    [ApiController]

    public class FileController : ControllerBase

    {

 

        [Route("postFile")]

        [HttpPost]

        public IActionResult postFile(IFormFile file)

        {

            string url = "ftp://" + "193.111.103.50:32" + "/" + file.FileName;

 

            FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url);

            request.Credentials = new NetworkCredential("k.ad", "şifre");

            request.Method = WebRequestMethods.Ftp.UploadFile;

 

            using (Stream ftpStream = request.GetRequestStream())

            {

                file.CopyTo(ftpStream);

            }

            return Ok();

        }

    }

}

 

 

 

        

5- .NET CORE ftp klasör oluşturma

 

 

  private bool CreateFTPDirectory(string directory)

        {

            try

            {

                //create the directory

                string url = "ftp://" + "193.111.103.50:32" + "/" + directory;

 

                FtpWebRequest requestDir = (FtpWebRequest)FtpWebRequest.Create(new Uri(url));

                requestDir.Method = WebRequestMethods.Ftp.MakeDirectory;

                requestDir.Credentials = new NetworkCredential("k.ad", "şifre");

                requestDir.UsePassive = true;

                requestDir.UseBinary = true;

                requestDir.KeepAlive = false;

                FtpWebResponse response = (FtpWebResponse)requestDir.GetResponse();

                Stream ftpStream = response.GetResponseStream();

 

                ftpStream.Close();

                response.Close();

 

                return true;

            }

            catch (WebException ex)

            {

                FtpWebResponse response = (FtpWebResponse)ex.Response;

                if (response.StatusCode == FtpStatusCode.ActionNotTakenFileUnavailable)

                {

                    response.Close();

                    return true;

                }

                else

                {

                    response.Close();

                    return false;

                }

            }

        }

 

 

 

6- .NET CORE ftp dosya indirme

 

 

  [Route("downloadFile")]

        [HttpPost]

        public Stream downloadFile()

        {

            string url = "ftp://" + "193.111.103.50:31/hata.png";

 

            FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(new Uri(url));

 

            request.Credentials = new NetworkCredential("k.ad", "şifre");

            request.Method = WebRequestMethods.Ftp.DownloadFile;

                Stream reader = request.GetResponse().GetResponseStream();

                return reader;

        }

 

 

 2023 Şubat 22 Çarşamba
 606