Como: Carregar arquivos com controle de servidor Web FileUpload
O controle de servidor Web FileUpload permite a você fornecer aos usuários uma maneira para enviar um arquivo dos seus computadores para o servidor.O arquivo a ser carregado é enviado ao servidor como parte da solicitação do navegador durante o postback.Após o arquivo ser carregado, você pode gerenciar o arquivo no seu código.
Observação: |
---|
O tamanho máximo de arquivo que pode ser carregado depende do valor do parâmetro de configuração MaxRequestLength.Se os usuários tentarem carregar um arquivo que é maior que o máximo, o carregamento falhará. |
Para carregar um arquivo com o controle do servidor Web FileUpload
Add a FileUpload control to the page.
Observação: Por motivos de segurança, você não pode pré-carregar o nome de um arquivo no controle FileUpload.
Em um manipulador para um evento, como o evento Load da página, faça o seguinte:
Verifique se o controle FileUpload possui um arquivo carregado, testando sua propriedade HasFile.
Verifique o nome do arquivo ou o tipo MIME do arquivo para certificar-se que os usuários carregaram um arquivo que você quer aceitar.Para verificar o tipo MIME, obtenha o objeto HttpPostedFile exposto como a propriedade PostedFile do controle FileUpload.Em seguida, você pode obter o tipo MIME, verificando a propriedade ContentType remetida da página.
Observação de segurança: Tipos MIME para arquivos carregados pode ser falsificados em algumas circunstâncias, somente verificação do tipo MIME do arquivo não é uma forma de verificação de segurança confiável.
Salve o arquivo para um local especificado.Você pode chamar o método SaveAs do objeto HttpPostedFile.Como alternativa, você pode gerenciar o arquivo carregado como uma matriz de bytes ou um fluxo usando a propriedade InputStream do objeto HttpPostedFile.
O exemplo a seguir mostra como trabalhar com um arquivo carregado.O código verifica a extensão do arquivo carregado usando uma lista de extensões de nome de arquivo permitidos embutida em código e rejeita todos os outros tipos de arquivos.Em seguida, o arquivo é gravado para uma pasta UploadedImages no site da Web atual.O arquivo carregado é salvo com o mesmo nome de arquivo que ele tinha no computador cliente.A propriedade FileName do controle FileUpload é utilizada porque a propriedade FileName do objeto HttpPostedFile retorna o caminho completo do arquivo no computador cliente.
Observação de segurança: Não exiba o caminho e o nome do arquivo salvo aos usuários; isso pode revelar informações que podem ser úteis para usuários mal-intencionados.
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If IsPostBack Then Dim path As String = Server.MapPath("~/UploadedImages/") Dim fileOK As Boolean = False If FileUpload1.HasFile Then Dim fileExtension As String fileExtension = System.IO.Path. _ GetExtension(FileUpload1.FileName).ToLower() Dim allowedExtensions As String() = _ {".jpg", ".jpeg", ".png", ".gif"} For i As Integer = 0 To allowedExtensions.Length - 1 If fileExtension = allowedExtensions(i) Then fileOK = True End If Next If fileOK Then Try FileUpload1.PostedFile.SaveAs(path & _ FileUpload1.FileName) Label1.Text = "File uploaded!" Catch ex As Exception Label1.Text = "File could not be uploaded." End Try Else Label1.Text = "Cannot accept files of this type." End If End If End If End Sub
protected void Page_Load(object sender, EventArgs e) { if(IsPostBack) { Boolean fileOK = false; String path = Server.MapPath("~/UploadedImages/"); if (FileUpload1.HasFile) { String fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower(); String[] allowedExtensions = {".gif", ".png", ".jpeg", ".jpg"}; for (int i = 0; i < allowedExtensions.Length; i++) { if (fileExtension == allowedExtensions[i]) { fileOK = true; } } } if (fileOK) { try { FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName); Label1.Text = "File uploaded!"; } catch (Exception ex) { Label1.Text = "File could not be uploaded."; } } else { Label1.Text = "Cannot accept files of this type."; } } }