Dundas Upload Control 2.0

 

O Dundas Upload Control é um componente que permite que você salve e manipule arquivos carregados para o servidor via browser (sem precisar ficar fazendo FTP, etc).

Ele é designado para ser usado com o ASP (Active Server Pages) que são hospedados no Microsoft IIS (Internet Information Sever).

 

Como usar o Dundas Upload.

 

Siga esses passos quando usar o Dundas Upload Control.

 

1-       Tenha certeza de que o formulário que está afixando (POSTING) o arquivo, está usando um EncType de “Multipart/Form-Data”. Você também precisará usar elementos para inclusão do arquivo (<input type=”file”>) nesse formulário, assim você poderá procurar o arquivo que se deseja carregar no servidor.

2-       Habilitar o identificador de erro na página que esta sendo afixada com “On Error Resume Next”

3-       Crie uma instância do Dundas Upload Control  na página em que está sendo afixada. Para isso use o método Server.CreateObject com um ProgID “Dundas.Upload” ou “Dundas.Upload.2”.

4-       Carregue os arquivos no servidor com os métodos Save ou SavetoMemory. Alternativamente você pode carregar arquivos incrementalmente usando o método GetNextFile.

5-       Obtenha qualquer informação do formulário através da coleção do formulário (Form collection). Note que formulários vazios não serão inseridos na coleção, e a tentativa de obter valores de um formulário vazio resultará em um erro (que poderá ser capturada depois).

6-       Manipule arquivos salvos no disco ou na memória com a colecao de arquivos (Files collection). Essa coleção é preenchida com dados depois do método Save ou Save toMemory. Quando o arquivo é carregado um por vez, pelo objeto Next File, a coleção é preenchida com um arquivo por vez.

7-       Coloque o objeto Upload para nothing.

 

 

Propriedades do objeto Dundas Upload Control

 


CheckMacBinary

Você pode selecionar essa propriedade para TRUE antes de carregar o arquivo, assim cada arquivo será checado por um formato MacBinary.

MaxFileCount

O número máximo de arquivos que podem ser carregados.

MaxFileSize

O tamanho máximo de qualquer arquivo a ser carregado. (em bytes)

MaxUploadSize

O tamanho máximo de dados que pode ser carregado para o servidor (em bytes). Isso inclui os dados do formulário também.

ProgressID

Defina essa propriedade com o unique ID (obtido pelo componente Upload Process do Dundas State Server) quando estiver fazendo um upload com uma janela de barra de progressão.

StateServer

Defina essa propriedade com o endereço IP do Dundas State Server quando estiver fazendo um upload com uma janela de barra de progressão.

StateServerPort

Defina essa propriedade com a porta em que o StateServer está esperando quando estiver fazendo um upload com uma janela de barra de progressão.

UseUniqueNames

Guarda arquivos carregados com nomes únicos. Isso é feito colocando um GUID na frente do nome do arquivo e “_”.

UseVirtualDir

Set essa propriedade para TRUE para o diretório virtual ser usado. Se TRUE, então qualquer método que utiliza o argumento Path deverá usar o caminho do diretório virtual e não o caminho do diretório físico.

 

 

Collection Properties

 

Files

Coleção de objetos Uploaded Files, cada um representa um arquivo carregado de uma página html com formulário.

Form

Coleção de objetos Formitem, com cada objeto representando um elemento do form. Note que os elementos “input” do tipo de arquivo (<input type=”file”>) não são representados na coleção de formulário.

 

 

Métodos do objeto Dundas Upload Control

 


DirectoryCreate

Cria um diretório.

DirectoryDelete

Apaga um diretório.

DirectoryExists

Checa se o diretório existe.

FileCopy

Copia um arquivo de um lugar para outro.

FileDelete

Apaga um arquivo específico..

FileExists

Checa se um arquivo específico existe.

FileMove

Move um arquivo de um lugar para outro.

GetFileDirName

Chame esse método para extrair o nome do diretório de um caminho de diretório específico.

GetFileExt

Chame esse método para extrair a extensão do arquivo de um caminho de diretório específico.

GetFileName

Chame esse método para extrair o nome do arquivo de um caminho de diretório específico.

GetNextFile

Usado para obter informações do formulário incrementalmente, esse método retorna objetos NextFile.

GetUniqueName

Esse método retorna um GUID. Útil quando grava arquivos com nomes únicos.

ImpersonateUser

Chame esse método para utilizar temporariamente uma conta do Windows, diferente do padrão. (usualmente a conta IUSR)

ImpersonationTerminate

Chame esse método para reverter para o usuário padrão, depois de ter usado o método ImpersonateUser.

RegisterServer

Chame esse método para registrar um componente COM.

Save

Salva arquivos carregados para o disco e preenche as coleções Form e Files do Upload Control.

SaveToMemory

Salva toda a informação do formulário (inclusive arquivos e valores de elementos do formulario) para a memória. Esse método também preenche as coleções Files e Form.

SendBinary

Chame esse método para fazer download de arquivos do servidor.

 

 

 

 

Quick Start

 

O código a seguir demonstra como preencher as coleções do Upload control, salvar arquivos carregados no disco e obter dados do formulário. Note que, não fazermos nenhuma checagem de erro.

Nós assumimos que um formulário com encoding type of "Multipart/Form-Data" está afixando na página ASP que contém o seguinte código:

 

<%@ Language=VBScript %>
<%

'a maioria dos métodos de controle, lançam uma exceção se um erro ocorre, então usaremos a expressão
' On Error Resume Next

On Error Resume Next

 

'cria a instância do Upload control
Set
objUpload = Server.CreateObject("Dundas.Upload.2")

 

'Salva arquivos carregados para o disco. Note que poderíamos também salvar na memória
' Isso preenche as coleções de arquivos e de formulário.

objUpload.Save "c:\temp\"

 

'Obtém o valor de um elemento do formulário chamado txtName

strName = objUpload.Form("txtName")

 

'Obtém o tamanho do primeiro arquivo carregado

strSize = objUpload.Files(0).Size

'Libera os recursos.
Set
objUpload = Nothing
%>

 

Mais um exemplo:

Arquivo form_upload.asp

<HTML>
<HEAD>
<TITLE>WebNOW - UpLoad Com Dundas UpLoad</TITLE>
</HEAD>
<BODY> <!--
Neste tutorial nós estaremos utilizando o Objeto Dundas Upload (encontrado em http://www.dundas.com), demos preferência ao Dundas por ser gratuito e fácil de se manipular.
Antes de mais nada baixe o componente do site e instale-o na máquina que processará os fontes ASP. O máximo que terá que fazer para instala-lo é clicar em Next.
Nós iniciaremos criando um formulário e a partir dele enviaremos os anexos para o servidor e o gravaremos no local que determinarmos.
Vamos ao código comentado!
Antes de testarmos os fontes fique atento se o seu PWS ou IIS estão configurados de forma que de acesso de escrita na pasta onde serão salvos os arquivos carregados pelo UpLoad. Caso contrário aparecerá o erro Preste atenção a linha do <form... onde esta ENCTYPE="multipart/form-data" essa linha determina ao Browser que os arquivos serão carregados para o servidor e o ASP com o objeto do Dundas tratarão de salva-lo num local determinado. (veremos isso na página grava_anexo.asp, mais a baixo.)
A baixo será montado o formulário para o anexo dos arquivos
-->
<b><form ENCTYPE="multipart/form-data" method="post" action="grava_anexo.asp">
<table width="100%" border="0">
<tr>
<td> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Anexo 1:
<input type="file" value="Anexo" name="file">
</font></td>
</tr>
<tr>
<td><font face="Verdana, Arial, Helvetica, sans-serif" size="2"> Anexo 2:
<input type="file" value="Anexo" name="file2">
</font></td>
</tr>
<tr>
<td><font face="Verdana, Arial, Helvetica, sans-serif" size="2"> Anexo 3:
<input type="file" value="Anexo" name="file3">
</font></td>
</tr>
</table>
<input type="submit" value="Enviar" name="submit" onClick="">
</form>
</BODY>
</HTML></b>
<!--Fim do form_upload.asp-->

Arquivo grava_anexo.asp

<%
'Início de grava_anexo.asp

'Utilizaremos a função On Error Resume Next para ignorar qualquer erro que possa vir a acontecer, e posteriormente iremos identifica-lo e só então comunicarmos ao usuário.
On Error Resume Next

Response.Write "<HTML><HEAD><TITLE>WebNOW - UpLoad com Dundas UpLoad</TITLE></HEAD><BODY>"

Dim objUpload


'Cria uma instancia do objeto Upload e atribui a variável objUpload.
Set objUpload = server.CreateObject("Dundas.Upload.2")

'Determinamos True em UseVirtualDir para que possamos utilizar o caminho virtual.
objUpload.UseVirtualDir = True

'Determinamos False em UseUniqueNames para que o arquivo nao mude de nome.
objUpload.UseUniqueNames = False

'Utilizamos o caminho virtual que determina onde serão salvos os arquivos carregados.
objUpload.Save "/image"

'INFORMAÇÕES DO ARQUIVO CARREGADO


'loop through all uploaded files, and output their Content Type
For Each objUploadedFile in objUpload.Files
Response.Write("content Type: " & objUploadedFile.ContentType & "<br>")
Next

'loop through all uploaded files, and output their Original Path
For Each objUploadedFile in objUpload.Files
Response.Write("Original Path: " & objUploadedFile.OriginalPath & "<br>")
Next


'Informação para o caminho físico em que o arquivo foi carregado
'loop through all uploaded files, and output their Path
For Each objUploadedFile in objUpload.Files
Response.Write("Path: " & objUploadedFile.Path & "<br>")
Next


'loop through all uploaded files, and output their size in bytes
For Each objUploadedFile in objUpload.Files
Response.Write("Size: " & objUploadedFile.Size & "<br>")
Next

'loop through all uploaded files, and output their tagname
For Each objUploadedFile in objUpload.Files
Response.Write("TagName: " & objUploadedFile.TagName & "<br>")
Next


'Limpa a instância criada na memória do servidor.
Set objUpload = nothing

'Aqui nós verificaremos se ocorreu algum tipo de erro com os dados carregados. O objeto Err guarda o último erro, caso nenhum erro tenha ocorrido o objeto conterá o valor 0 (zero) com isso podemos verificar o valor do objeto e determinarmos qual mensagem será dada ao usuário.
If Err <> 0 Then

'Aqui estamos imprimindo na tela do usuário a descrição do erro e seu número.
Response.Write Err.Description & " " & Err.Number & "<br>"
Response.Write "<font face=Verdana, Arial, Helvetica, sans-serif size=2><b>Houve erro(s) ao carregar o(s) arquivo(s) anexado(s)!<br><a href=javascript:history.back(-1)>Voltar</a> </b></font>"
Else


'Se o objeto Err for igual a 0 será apresentado a mensagem de sucesso e os dados estarão salvos no caminho determinado acima
Response.Write "<font face=Verdana, Arial, Helvetica, sans-serif size=2><b>Seus dados foram carregados com sucesso!</b></font><br>"

'Response.Write Path


End If
Response.Write "</BODY></HTML>"
'Fim de grava_anexo.asp

%>