Upload de arquivos

JumpKick.HttpLib — Upload de arquivos

Observações

O envio de arquivos é feito com Http.Post() + .Upload(), utilizando o formato multipart/form‑data para enviar arquivos locais;
Classe principal: NamedFileStream(nome do campo do formulário, nome do arquivo, tipo MIME, fluxo do arquivo)

O endereço de exemplo oficial https://jthorne.co.uk/httplib não serve para testes práticos. Utilize esse endereço alternativo para testes: https://httpbin.org/post

Construtor

new NamedFileStream(
    string fieldName,       // Chave do formulário que o backend recebe para o arquivo
    string fileName,        // Nome do arquivo enviado ao servidor
    string contentType,     // Tipo MIME do arquivo
    Stream stream           // Fluxo de leitura do arquivo File.OpenRead(caminho do arquivo)
)Code language: JavaScript (javascript)

Upload de um único arquivo

using System;
using System.IO;
using JumpKick.HttpLib;

class Program
{
    static void Main(string[] args)
    {
        Http.Post("https://httpbin.org/post")
        .Upload(files: new[]
        {
            new NamedFileStream(
                "myfile",
                "photo.png",
                "image/png",
                File.OpenRead(@"C:\Users\Jack\Pictures\clipboard.png")
            )
        })
        .OnSuccess(result =>
        {
            Console.WriteLine("==== Upload de arquivo concluído com sucesso ====");
            Console.WriteLine(result);
        })
        .OnFail(webexception =>
        {
            Console.WriteLine("==== Falha durante o upload ====");
            Console.WriteLine(webexception.Message);
        })
        .Go();

        Console.ReadKey();
    }
}Code language: JavaScript (javascript)

Monitoramento do progresso com onProgressChanged

Exibe a porcentagem de envio em tempo real

using System;
using System.IO;
using JumpKick.HttpLib;

class Program
{
    static void Main(string[] args)
    {
        Http.Post("https://httpbin.org/post")
        .Upload(
            files: new[]
            {
                new NamedFileStream(
                    "myfile",
                    "photo.png",
                    "image/png",
                    File.OpenRead(@"C:\Users\86186\Pictures\clipboard.png")
                )
            },
            onProgressChanged: (bytesSent, totalBytes) =>
            {
                double percent = (double)bytesSent / totalBytes * 100;
                Console.WriteLine($"Enviando arquivo: {percent:F2} %");
            }
        )
        .OnSuccess(result =>
        {
            Console.WriteLine("\n==== Upload finalizado ====");
            Console.WriteLine(result);
        })
        .OnFail(webexception =>
        {
            Console.WriteLine("==== Falha durante o upload ====");
            Console.WriteLine(webexception.Message);
        })
        .Go();

        Console.ReadKey();
    }
}Code language: JavaScript (javascript)

Upload de vários arquivos ao mesmo tempo

Adicione várias instâncias de NamedFileStream dentro do array

using System;
using System.IO;
using JumpKick.HttpLib;

class Program
{
    static void Main(string[] args)
    {
        Http.Post("https://httpbin.org/post")
        .Upload(files: new[]
        {
            new NamedFileStream("file1", "1.png", "image/png", File.OpenRead(@"D:\1.png")),
            new NamedFileStream("file2", "2.jpg", "image/jpeg", File.OpenRead(@"D:\2.jpg"))
        })
        .OnSuccess(result =>
        {
            Console.WriteLine("==== Upload de múltiplos arquivos bem‑sucedido ====");
            Console.WriteLine(result);
        })
        .OnFail(webexception =>
        {
            Console.WriteLine("==== Falha durante o upload ====");
            Console.WriteLine(webexception.Message);
        })
        .Go();

        Console.ReadKey();
    }
}Code language: JavaScript (javascript)

Cenário de erro

Informe um caminho de arquivo inexistente para disparar uma exceção e testar o tratamento via OnFail

using System;
using System.IO;
using JumpKick.HttpLib;

class Program
{
    static void Main(string[] args)
    {
        Http.Post("https://httpbin.org/post")
        .Upload(files: new[]
        {
            new NamedFileStream(
                "myfile",
                "notfound.png",
                "image/png",
                File.OpenRead(@"D:\arquivo_que_nao_existe.png") // Caminho inválido
            )
        })
        .OnSuccess(result =>
        {
            Console.WriteLine("==== Upload de arquivo concluído com sucesso ====");
            Console.WriteLine(result);
        })
        .OnFail(webexception =>
        {
            Console.WriteLine("==== Exceção capturada (arquivo não encontrado) ====");
            Console.WriteLine(webexception.Message);
        })
        .Go();

        Console.ReadKey();
    }
}Code language: JavaScript (javascript)

Upload de arquivos

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *