Multiplos Anexos ASP.NET
20/12/2013
0
Ernetwork
Posts
21/12/2013
Ernetwork
ASP.NET
<%@ Page Language="vb" MasterPageFile="~/Common/CommonMasterPage.Master" AutoEventWireup="true" CodeBehind="upload.aspx.vb" Inherits="ERnetworkSolution.Web.upload" %> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %> <asp:Content ID="Content1" ContentPlaceHolderID="cphBody" runat="server"> <div class="lblAnexo2" style="margin-left: 243px; width: 413px;"> <asp:FileUpload ID="uplAnexo" runat="server" /> <asp:Button ID="btnAdicionar" runat="server" Text="Adicionar" OnClick="btnAdicionar_Click" /> <br /> <asp:ListBox ID="lstArquivos" runat="server" Width="300px"></asp:ListBox> <br /> <asp:Button ID="Button1" runat="server" Text="Upload" /> <asp:Button ID="btnDeletar" runat="server" Text="Deletar" OnClick="btnDeletar_Click" /> <br /> <asp:Label ID="lblMensagem" runat="server"></asp:Label> </div> </asp:Content>
CODEBEHIND
Imports System.IO Public Class upload Inherits System.Web.UI.Page 'Criamos uma variável do tipo ArrayList. Perceba que ela é “Estática” Public Shared arrArquivos As New ArrayList() Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load End Sub Protected Sub btnAdicionar_Click(sender As Object, e As EventArgs) Handles btnAdicionar.Click 'Vamos verificar se não existe arquivo selecionado no controle FileUpload. If uplAnexo.HasFile Then 'Verificamos o tamanho do arquivo em bytes. Nesse caso faço Upload de até 11MB If uplAnexo.PostedFile.ContentLength > 11000000 Then Dim cs As ClientScriptManager = Page.ClientScript cs.RegisterClientScriptBlock(Me.[GetType](), "Erro", "alert(O tamanho do arquivo é maior que o tamanho permitido!)", True) Return Else 'Adicionamos o arquivo ao arrayList, em seguida ao ListBox. arrArquivos.Add(uplAnexo) lstArquivos.Items.Add(uplAnexo.PostedFile.FileName) End If End If End Sub Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'Pegamos o caminho do diretório onde vamos salvar os Uploads Dim caminho As String = Server.MapPath("Anexos") For Each iFile As FileUpload In arrArquivos 'Para cada Arquivo iFile em arrArquivos 'Salvo o arquivo no diretório base, nesse caso "caminho". iFile.PostedFile.SaveAs(caminho + Path.GetFileName(iFile.PostedFile.FileName)) lblMensagem.Text = "Upload de: " & lstArquivos.Items.Count.ToString() & " arquivo (s) Realizado com sucesso!" Next lstArquivos.Items.Clear() 'Limpamos o ListBox arrArquivos.Clear() 'Limpamos o ArrayList End Sub Protected Sub btnDeletar_Click(sender As Object, e As EventArgs) Handles btnDeletar.Click If lstArquivos.SelectedIndex > -1 Then 'Se for selecionado algum item da lista arrArquivos.Remove(lstArquivos.SelectedValue) 'Remove o item do ArrayList ' Remove tbm do ListBox lstArquivos.Items.Remove(lstArquivos.SelectedValue) Else Dim cs As ClientScriptManager = Page.ClientScript cs.RegisterClientScriptBlock(Me.[GetType](), "Selecionar", "alert(Selecione um arquivo na lista!)", True) Return End If End Sub End Class
Quando eu utilizo MasterPage (como no código acima) o arquivo não é encontrado, e quanto eu não utilizo a MasterPage o processo ocorre normalmente e o arquivo é encontrado.
22/12/2013
Joel Rodrigues
22/12/2013
Ernetwork
23/12/2013
Joel Rodrigues
Estou concluindo o tópico.
Abraço.
Clique aqui para fazer login e interagir na Comunidade :)