0% acharam este documento útil (0 voto)
4 visualizações

using System

O documento descreve um aplicativo WinForms em C# que permite o upload de arquivos, especificamente PDF, JPG e PNG, com um limite de 5MB. O aplicativo valida o arquivo selecionado, simula o processo de upload e exibe o status e progresso em uma interface gráfica. Os arquivos carregados são armazenados em uma lista e exibidos em um DataGridView com informações como nome, tamanho, tipo e data do upload.

Enviado por

Gustavo 2005
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
4 visualizações

using System

O documento descreve um aplicativo WinForms em C# que permite o upload de arquivos, especificamente PDF, JPG e PNG, com um limite de 5MB. O aplicativo valida o arquivo selecionado, simula o processo de upload e exibe o status e progresso em uma interface gráfica. Os arquivos carregados são armazenados em uma lista e exibidos em um DataGridView com informações como nome, tamanho, tipo e data do upload.

Enviado por

Gustavo 2005
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 5

using System;

using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace UploadFicheirosWinForms
{
public partial class Form1 : Form
{
private List<Ficheiro> listaFicheiros = new List<Ficheiro>(); // Lista de
ficheiros carregados

public Form1()
{
InitializeComponent();
ConfigurarDataGridView();
}

private void btnUpload_Click(object sender, EventArgs e)


{
OpenFileDialog openFileDialog = new OpenFileDialog
{
Title = "Selecionar um ficheiro",
Filter = "PDF, JPG, PNG|*.pdf;*.jpg;*.png",
Multiselect = false
};

if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string filePath = openFileDialog.FileName;
txtFilePath.Text = filePath; // Exibe caminho

FileInfo fileInfo = new FileInfo(filePath);


if (ValidarFicheiro(fileInfo))
{
_ = ProcessarUploadAsync(fileInfo);
}
}
}

private async Task ProcessarUploadAsync(FileInfo file)


{
progressBarUpload.Value = 0;
lblStatus.Text = "A carregar...";

await Task.Run(() =>


{
for (int i = 0; i <= 100; i += 10)
{
Task.Delay(100).Wait(); // Simula upload
Invoke(new Action(() => progressBarUpload.Value = i));
}
});

lblStatus.Text = "Upload concluído!";


listaFicheiros.Add(new Ficheiro(file.Name, file.Length, file.Extension,
DateTime.Now));
AtualizarTabela();
}

private bool ValidarFicheiro(FileInfo file)


{
string[] tiposPermitidos = { ".pdf", ".jpg", ".png" };
long tamanhoMaximo = 5 * 1024 * 1024; // 5MB

if (!Array.Exists(tiposPermitidos, tipo => tipo ==


file.Extension.ToLower()))
{
MessageBox.Show("Tipo de ficheiro inválido!", "Erro",
MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}

if (file.Length > tamanhoMaximo)


{
MessageBox.Show("O ficheiro excede o tamanho máximo permitido
(5MB)!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}

return true;
}

private void ConfigurarDataGridView()


{
dgvListaFicheiros.ColumnCount = 4;
dgvListaFicheiros.Columns[0].Name = "Nome";
dgvListaFicheiros.Columns[1].Name = "Tamanho (KB)";
dgvListaFicheiros.Columns[2].Name = "Tipo";
dgvListaFicheiros.Columns[3].Name = "Data do Upload";

dgvListaFicheiros.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.Fill;
dgvListaFicheiros.SelectionMode =
DataGridViewSelectionMode.FullRowSelect;
}
private void AtualizarTabela()
{
dgvListaFicheiros.Rows.Clear();

foreach (var ficheiro in listaFicheiros)


{
dgvListaFicheiros.Rows.Add(
ficheiro.Nome,
(ficheiro.Tamanho / 1024).ToString("N0"),
ficheiro.Tipo,
ficheiro.DataUpload.ToString("dd/MM/yyyy HH:mm"));
}
}
}

public class Ficheiro


{
public string Nome { get; }
public long Tamanho { get; }
public string Tipo { get; }
public DateTime DataUpload { get; }

public Ficheiro(string nome, long tamanho, string tipo, DateTime


dataUpload)
{
Nome = nome;
Tamanho = tamanho;
Tipo = tipo;
DataUpload = dataUpload;
}
}
}

Você também pode gostar