O que você deve fazer se quiser colocar as fotos ou arquivos da sua máquina no servidor Existem três opções: 1. Upload via FTP, 2. Usar uma unidade flash USB para copiar para o servidor, 3. Se o servidor suportar o? Função de upload ASP, use a página da web O navegador carrega o arquivo para o servidor.
Hoje explicamos como usar a função de upload do asp para fazer upload de arquivos locais para o servidor.
O sistema mais simples inclui os três arquivos a seguir:
upload.htm --Carregar arquivo de porta, selecionar arquivo local uploadimg.asp --Carregar arquivo de controle do programa upload_5xsoft.inc --Sem classe de upload de componente, iniciantes não precisam aprender este arquivo, contanto que possam usá-lo
conteúdo upload.htm - faça upload do arquivo da porta, selecione o arquivo local
- <html>
- <cabeça>
- </head>
- <corpo>
- <tablewidth=80%border=0align=center>
- <formname=form1method=postaction=uploadimg.aspenctype=multipart/form-data>
- <tr>
- <tdalign=center><inputname=upfiletype=fileid=upfile></td>
- </tr>
- <tr>
- <tdalign=center><inputtype=submitname=Submitvalue=Fazer upload de fotos></td>
- </tr>
- </form>
- </tabela>
- </body>
- </html>
conteúdo uploadimg.asp - faz upload do arquivo de controle do programa
- <!--#includeFILE=upload_5xsoft.inc-->
- <%
- dimupload,arquivo,caminho do arquivo
- caminho do arquivo=UPLOAD/
- setupload=newupload_5xSoft''Criar objeto de upload
- foreachformNameinupload.file'' lista todos os arquivos enviados
- setfile=upload.file(formName)'' gera um objeto de arquivo
- iffile.FileSize>0then''If FileSize>0, significa que há dados do arquivo
- fname=arquivo.nomedoarquivo
- file.SaveAsServer.mappath(filepath&fname)''Salvar arquivo
- fim
- setfile = nada
- próximo
- setupload=nothing''Excluir este objeto
conteúdo upload_5xsoft.inc
--O conteúdo deste arquivo não pertence ao conteúdo deste exercício. Este exercício aplica este método.
- <SCRIPTRUNAT=SERVERLANGUAGE=VBSCRIPT>
- dimoUpFileStream
- Classupload_5xSoft
- dimForm,Arquivo,Versão
- PrivateSubClass_Initialize
- dimRequestBinDate,sStart,bCrLf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,oFileInfo
- dimiFileSize,sFilePath,sFileType,sFormvalue,sFileName
- dimiFindStart,iFindEnd
- dimiFormStart,iFormEnd,sFormName
- Versão = Nenhuma classe de upload de componente Versão 0.93
- setForm=Server.CreateObject(Scripting.Dictionary)
- setFile=Server.CreateObject(Scripting.Dictionary)
- ifRequest.TotalBytes<1thenExitSub
- settStream=Server.CreateObject(adodb.stream)
- setoUpFileStream=Server.CreateObject(adodb.stream)
- oUpFileStream.Type=1
- oUpFileStream.Mode=3
- oUpFileStream.Open
- oUpFileStream.WriteRequest.BinaryRead(Request.TotalBytes)
- Response.Write<fontsize=2>Tempo de execução da página: &FormatNumber((Timer()-time1)*1000,3)&milissegundos</font><br>
- oUpFileStream.Position=0
- RequestBinDate=oUpFileStream.Read
- iFormStart=1
- iFormEnd=LenB(RequestBinDate)
- bCrLf=chrB(13)&chrB(10)
- sStart=MidB(RequestBinDate,1,InStrB(iFormStart,RequestBinDate,bCrLf)-1)
- iInício=LenB(sInício)
- iFormStart=iFormStart+iStart+1
- while(iFormStart+10)<iFormEnd
- iInfoEnd=InStrB(iFormStart,RequestBinDate,bCrLf&bCrLf)+3
- tStream.Type=1
- tStream.Mode=3
- tStream.Open
- oUpFileStream.Position=iFormStart
- oUpFileStream.CopyTotStream,iInfoEnd-iFormStart
- tStream.Position=0
- tStream.Type=2
- tStream.Charset=gb2312
- sInfo=tStream.ReadText
- 'Obtém o nome do item do formulário
- iFormStart=InStrB(iInfoEnd,RequestBinDate,sStart)
- iFindStart=InStr(22,sInfo,nome=,1)+6
- iFindEnd=InStr(iFindStart,sInfo,,1)
- sFormName=Mid(sinfo,iFindStart,iFindEnd-iFindStart)
- 'Se for um arquivo
- ifInStr(45,sInfo,nomedoarquivo=,1)>0então
- setoFileInfo=newFileInfo
- 'Pegue o nome do arquivo
- iFindStart=InStr(iFindEnd,sInfo,nome do arquivo=,1)+10
- iFindEnd=InStr(iFindStart,sInfo,,1)
- sFileName=Mid(sinfo,iFindStart,iFindEnd-iFindStart)
- oFileInfo.FileName=getFileName(sFileName)
- oFileInfo.FilePath=getFilePath(sFileName)
- 'Obtém o tipo de arquivo
- iFindStart=InStr(iFindEnd,sInfo,Content-Type:,1)+14
- iFindEnd=InStr(iFindStart,sInfo,vbCr)
- oFileInfo.FileType=Mid(sinfo,iFindStart,iFindEnd-iFindStart)
- oFileInfo.FileStart=iInfoEnd
- oFileInfo.FileSize=iFormStart-iInfoEnd-3
- oFileInfo.FormName=sFormName
- arquivo.addsFormName,oFileInfo
- outro
- 'Se for um item de formulário
- tStream.Fechar
- tStream.Type=1
- tStream.Mode=3
- tStream.Open
- oUpFileStream.Position=iInfoEnd
- oUpFileStream.CopyTotStream,iFormStart-iInfoEnd-3
- tStream.Position=0
- tStream.Type=2
- tStream.Charset=gb2312
- sFormvalue=tStream.ReadText
- formulário.AddsFormName,sFormvalue
- fim
- tStream.Fechar
- iFormStart=iFormStart+iStart+1
- vamos
- DataBinSolicitação=
- setStream = nada
- Fim Sub
- PrivateSubClass_Terminate
- ifnotRequest.TotalBytes<1then
- formulário.Remover tudo
- arquivo.Remover tudo
- setform = nada
- setfile = nada
- oUpFileStream.Close
- setoUpFileStream = nada
- fim
- Fim Sub
- Função privadaGetFilePath(FullPath)
- IfFullPath<>Então
- GetFilePath = left(FullPath,InStrRev(FullPath,))
- Outro
- ObterCaminhoDoArquivo=
- FimSe
- Função final
- Função privadaGetFileName(FullPath)
- IfFullPath<>Então
- GetFileName=mid(FullPath,InStrRev(FullPath,)+1)
- Outro
- ObterNomeArquivo=
- FimSe
- Função final
- Fim da Classe
- ClassFileInfo
- dimFormName,FileName,FilePath,FileSize,FileType,FileStart
- PrivateSubClass_Initialize
- NomeDoArquivo=
- Caminho do arquivo=
- Tamanho do arquivo=0
- ArquivoIniciar=0
- NomeDoFormulário=
- Tipo de arquivo=
- Fim Sub
- Função públicaSaveAs(FullPath)
- dimoFileStream,ErrorChar,i
- Salvar como=1
- iftrim(caminho completo)=orright(caminho completo,1)=/thenexitfunction
- setoFileStream=CreateObject(Adodb.Stream)
- oFileStream.Type=1
- oFileStream.Mode=3
- oFileStream.Open
- oUpFileStream.position=FileStart
- oUpFileStream.copytooFileStream,FileSize
- oFileStream.SaveToFileFullPath,2
- oFileStream.Close
- setoFileStream = nada
- Salvar como=0
- função final
- Fim da Classe
- </SCRIPT>
O que este artigo descreve é o programa mais simples para fazer upload de arquivos. Amigos, analise-o você mesmo. Depois de aprender este exercício, você basicamente dominará a função geral de upload do ASP.