Array
(
)

Multiplos Anexos ASP.NET

Ernetwork
   - 20 dez 2013

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.

Joel Rodrigues
   - 21 dez 2013

Web forms ou MVC?

0
|
0

Ernetwork
   - 21 dez 2013

WebForms

0
|
0

Ernetwork
   - 21 dez 2013

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

ASP.NET

#Código<%@ 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

#CódigoImports 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.

0
|
0

Joel Rodrigues
   - 22 dez 2013

Veja se este artigo lhe ajuda: Upload de múltiplos arquivos em ASP.NET Web Forms com o plugin Uploadify

0
|
0

Ernetwork
   - 22 dez 2013

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!

0
|
0

Joel Rodrigues
   - 23 dez 2013

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

0
|
0