A carregar um ficheiro de imagem a um Web site utilizando o Visual Basic .NET ou Visual Basic 2005

Traduções de Artigos Traduções de Artigos
Artigo: 315832 - Ver produtos para os quais este artigo se aplica.
Para obter uma Microsoft Active Server Pages versão deste artigo, consulte 299692.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo demonstra como utilizar o controlo de entrada para enviar um ficheiro de imagem de um computador local para um Web site. O nome do ficheiro é validado contra o servidor para se certificar de que não substitui um ficheiro existente.

Requisitos

A lista seguinte descreve o hardware recomendado, software, infra-estrutura de rede e service packs que necessita:
  • Microsoft Visual Basic 2005 ou do Microsoft Visual Basic .NET
  • Microsoft Internet Information Services (IIS) versão 5.0 ou posterior
Este artigo pressupõe que está familiarizado com os seguintes tópicos:
  • Aplicações Web
  • O Microsoft ASP.NET

Utilize o controlo introdução de dados para carregar um ficheiro de imagem para um Web site

O controlo de entrada pode processar vários tipos de entrada. Quando cria um controlo de entrada com o HTML (Hypertext Markup Language) <input type="file"> elemento, o Microsoft Visual Studio 2005 ou Microsoft Visual Studio .NET gera um objecto de ficheiro, uma caixa de texto e um botão Procurar . O utilizador pode escrever um nome de ficheiro na caixa de texto. Em alternativa, o utilizador pode clicar em Procurar para procurar o sistema de ficheiros local e para seleccionar um ficheiro para carregar.

Para criar um formulário Web do ASP.NET que inclui uma caixa de entrada e um botão de comando para enviar um ficheiro de imagem de um computador local para um Web site, siga estes passos:
  1. Inicie o Visual Studio .NET ou o Visual Studio 2005.
  2. Crie um novo projecto ASP.NET Web Application no Visual Basic. NET.

    Nota Visual Studio 2005, pode criar um Web site.
  3. Na janela WebForm1.aspx, mudar para HTML vista.

    Nota No Visual Studio 2005, mudar para HTML vista na janela default.aspx.
  4. O seguinte código adiciona o atributo ENCTYPE formulário para especificar o formato dos dados que são registados. O browser utiliza este atributo para codificar correctamente as informações colocadas no servidor. O atributo de acção neste código especifica que a página irá processar o pedido. Finalmente, o atributo do método do formulário é definido como Registar por predefinição, de modo que pode enviar grandes quantidades de dados na transacção.

    Na janela HTML do WebForm1, adicione os pares atributo/valor seguinte dentro de abertura <form> tag:
    EncType="multipart/form-data" action="WebForm1.aspx"
    					
  5. O seguinte código adiciona o controlo de entrada para especificar o ficheiro que pretende enviar ao servidor. Pode colocar uma cadeia de texto à frente do controlo para pedir ao utilizador.

    Na janela HTML do WebForm1, adicione o seguinte código entre os códigos <form> de abertura e fecho:
    <INPUT id="oFile" type="file" runat="server">
    					
  6. Tenha em atenção que o controlo de entrada não realmente carregar o ficheiro. Tem de adicionar um controlo de botão para carregar o ficheiro que especificou no controlo de entrada .

    Na janela HTML do WebForm1, adicione o seguinte código entre os códigos <form> abertura e fecho, depois docódigo de controlo de entrada :
    <asp:button id="btnUpload" type="submit" text="Upload" runat="server"></asp:button>
    					
  7. O código seguinte apresenta uma mensagem para indicar se o ficheiro carrega com êxito. Crie um painel que contém uma única etiqueta para apresentar o resultado.

    Na janela HTML do WebForm1, adicione o seguinte código entre os códigos <form> abertura e fecho, depois docódigo de controlo de botão :
    <asp:Panel ID="frmConfirmation" Visible="False" Runat="server">
    <asp:Label id="lblUploadResult" Runat="server"/>
    </asp:Panel>
    					
  8. Código do Visual Basic copia o ficheiro do sistema de ficheiros local, verifica se o ficheiro já existe no servidor e envia o ficheiro para o Web site.

    Mudar para vista de estrutura para WebForm1.aspx (clique em estrutura no canto inferior esquerdo da janela Designer). Faça duplo clique em Enviar para criar um processador de eventos para o evento Click do botão.
  9. Adicione o seguinte código no início do código - atrás de página:
    Imports System.IO
    					
  10. Adicione o seguinte código ao processador de eventos clique do botão de comando que criou:
    Dim strFileName as string
    Dim strFilePath as string
    Dim strFolder as string
    			
    strFolder = "C:\Temp\"
    			
    'Get the name of the file that is posted.
    strFileName = oFile.PostedFile.FileName
    strFileName = Path.GetFileName(strFileName)
    						
    'Create the directory if it does not exist.
    If (not Directory.Exists(strFolder)) then
       Directory.CreateDirectory(strFolder)
    End If
    			
    'Save the uploaded file to the server.
    strFilePath = strFolder & strFileName
    
    If File.Exists(strFilePath) then
       lblUploadResult.Text = strFileName & " already exists on the server!"
       Else
       oFile.PostedFile.SaveAs(strFilePath)
       lblUploadResult.Text = strFileName & " has been successfully uploaded."
    End If
    			
    'Display the result of the upload.
    frmConfirmation.Visible = true
    					
  11. Clique em Guardar .
  12. No menu Debug , clique em Iniciar para criar e executar a aplicação. Aparece uma caixa de texto e um botão de comando.
  13. Escreva o caminho para o ficheiro de imagem na caixa de texto ou clique em Procurar para procurar o ficheiro de imagem no computador local.
  14. Clique em Enviar para enviar o ficheiro para o servidor. Se o ficheiro é exclusivo, receberá uma mensagem a enviar com êxito. Se o ficheiro já existir no servidor, será notificado em conformidade.

Listagem de código completo

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="WebApplication3.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
    <HEAD>
        <title>WebForm1</title>
        <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
        <meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
        <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
        <form id="Form1" method="post" runat="server" EncType="multipart/form-data" action="WebForm1.aspx">
            Image file to upload to the server: <INPUT id="oFile" type="file" runat="server" NAME="oFile">
            <asp:button id="btnUpload" type="submit" text="Upload" runat="server"></asp:button>
            <asp:Panel ID="frmConfirmation" Visible="False" Runat="server">
                <asp:Label id="lblUploadResult" Runat="server"></asp:Label>
            </asp:Panel>
        </form>
    </body>
</HTML>

Imports System.IO
Public Class WebForm1Public Class WebForm1 
// Note In Visual Studio 2005, "Public Class WebForm1" should be changed to "Partial Class _Default".
    Inherits System.Web.UI.Page
    Protected WithEvents btnUpload As System.Web.UI.WebControls.Button
    Protected WithEvents lblUploadResult As System.Web.UI.WebControls.Label
    Protected WithEvents frmConfirmation As System.Web.UI.WebControls.Panel
    Protected WithEvents oFile As System.Web.UI.HtmlControls.HtmlInputFile

#Region " Web Form Designer Generated Code "

    'The Web Form Designer requires this call.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub

Private Sub Page_Init(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN: The Web Form Designer requires this method call.
        'Do not use the code editor to modify it.
        InitializeComponent()
    End Sub

#End Region

Private Sub Page_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
        'Insert user code to initialize the page here.
    End Sub

Private Sub btnUpload_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnUpload.Click
        Dim strFileName As String
        Dim strFilePath As String
        Dim strFolder As String

        strFolder = "C:\Temp\"

        'Get the name of the file that is posted.
        strFileName = oFile.PostedFile.FileName
        strFileName = Path.GetFileName(strFileName)

        'Create the directory if it does not exist.
        If (Not Directory.Exists(strFolder)) Then
            Directory.CreateDirectory(strFolder)
        End If

        'Save the uploaded file to the server.
        strFilePath = strFolder & strFileName
        If File.Exists(strFilePath) Then
lblUploadResult.Text = strFileName & " already exists on the server!"
        Else
            oFile.PostedFile.SaveAs(strFilePath)
lblUploadResult.Text = strFileName & " has been successfully uploaded."
        End If

        'Display the result of the upload.
        frmConfirmation.Visible = True

    End Sub
End Class
				

Verificar se funciona

  1. Carregar um novo ficheiro para o servidor. Receber a seguinte mensagem:
    File name has been successfully uploaded
    						
  2. Carregar o ficheiro mesmo novamente. Receber a seguinte mensagem:
    file name already exists on the server!
    						
Os ficheiros que copie são guardados na Drive: \Temp pasta no disco rígido local.

REFERÊNCIAS

Para obter mais informações, consulte para os seguintes Web sites da MSDN (Microsoft Developer Network):
Elemento de dados
http://msdn.microsoft.com/en-us/library/ms824689.aspx

Atributo ENCTYPE
http://msdn2.microsoft.com/en-us/library/ms533745.aspx

Classe HtmlInputFile
http://msdn2.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmlinputfile(vs.71).aspx

Propriedade HtmlInputFile.PostedFile
http://msdn2.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmlinputfile.postedfile(vs.71).aspx
Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
295626Não é possível carregar ficheiros de grandes dimensões quando utiliza o controlo de servidor HtmlInputFile

Propriedades

Artigo: 315832 - Última revisão: 21 de maio de 2007 - Revisão: 5.8
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.0
Palavras-chave: 
kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB315832 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 315832

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com