Multiplos Anexos ASP.NET

20/12/2013

0

Galera é o seguinte, tenho uma tela de abertura de chamados e na tela o usuario tem a opção de anexar quantos arquivos ele quiser, porém não estou encontrando uma forma de fazer isso em asp.net, tentei fazer com DevExpess mais tem algumas restrições quanta a manipulação do componente que não deu certo. Gostaria de saber se alguém tem alguma idéia de como eu possa estar fazendo para enviar multiplos Anexos. Estou desenvolvendo em ASP.NET e VB.NET.
Ernetwork

Ernetwork

Responder

Posts

21/12/2013

Joel Rodrigues

Web forms ou MVC?
Responder

21/12/2013

Ernetwork

WebForms
Responder

21/12/2013

Ernetwork

Estou tentando fazer da seguinte maneira... Segue código abaixo para maior entendimento.

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.
Responder

22/12/2013

Joel Rodrigues

Veja se este artigo lhe ajuda: [url:descricao=Upload de múltiplos arquivos em ASP.NET Web Forms com o plugin Uploadify]https://www.devmedia.com.br/upload-de-multiplos-arquivos-em-asp-net-web-forms-com-o-plugin-uploadify/26105[/url]
Responder

22/12/2013

Ernetwork

Deu certo! O problema estava na MasterPage, eu estava usando um UpdatePanel e em algum momento ele estava fazendo com que o objeto do Upload se perdesse. Obrigado pela Ajuda!
Responder

23/12/2013

Joel Rodrigues

Opa, legal que deu certo.
Estou concluindo o tópico.
Abraço.
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar