Social Icons

^^

sexta-feira, 19 de março de 2010

UPLOAD simples de arquivos

Exemplos simples que demostra como fazer o upload de arquivos para o servidor web.

Vale lembrar que para criar um arquivo usando este exemplo, a pasta destino tem que estar setada com direitos de gravação.

============ form.asp

<html>
<head>
<title></title>
</head>
<body>
<form action="OutPutFile.asp" method="post" enctype="multipart/form-data" name="form2" id="form2">
<table width="47%" border="0" cellspacing="0" cellpadding="0" align="LEFT">
<tr><td>
<font face="Arial" size="2">Imagem 1</font> (<%= session("file1") %>)<br>
<input type="file" name="file" accept="image/gif,image/jpeg,image/pjpeg" enctype="multipart/form-data">
</td></tr>
<tr><td><input type="submit" value="enviar" ></td></tr>
</table>
</form>
</body>
</html>


===== outputfile.asp =========

<!--#include file="upload.asp"-->
<%
o upload é o arquivo responsavel que faz o processamento do dados binarios do arquivo enviado


'CAMINHO AONDE VAI SER SALVO O ARQUIVO

bem aqui você tem que definir o caminho fisico que será gravado o arquivo
caminho="D:Exemplos"
Response.Expires=0
Response.Buffer = TRUE
Response.Clear
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")
BuildUploadRequest RequestBin
contentType = lcase(UploadRequest.Item("file").Item("ContentType"))
filepathname = UploadRequest.Item("file").Item("FileName")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,""))
value = UploadRequest.Item("file").Item("Value")


 CASO QUEIRA MUDAR O NOME DO ARQUIVO

 USE ESTÁ VARIAVEL.

filename = "meu_arquivo"

'Create FileSytemObject Component
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
'Create and Write to a File
IF filename<>"" then
Set MyFile = ScriptObject.CreateTextFile(caminho & nome & "_" &filename)
response.write ( caminho & filename)
response.end
For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next
MyFile.Close
end if
response.write "nome do arquivo:" & nome & "_" &filename &"<BR>"
%>
<br>
<br>

============= upload.asp

<%
Sub BuildUploadRequest(RequestBin)
'Get the boundary
PosBeg = 1
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
boundaryPos = InstrB(1,RequestBin,boundary)
'Get all data inside the boundaries
Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
'Members variable of objects are put in a dictionary object
Dim UploadControl
Set UploadControl = CreateObject("Scripting.Dictionary")
'Get an object name
Pos = InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition"))
Pos = InstrB(Pos,RequestBin,getByteString("name="))
PosBeg = Pos+6
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filename="))
PosBound = InstrB(PosEnd,RequestBin,boundary)
'Test if object is of file type
If PosFile<>0 AND (PosFile<PosBound) Then
'Get Filename, content-type and content of file
PosBeg = PosFile + 10
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
'Add filename to dictionary object
UploadControl.Add "FileName", FileName
Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
PosBeg = Pos+14
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
'Add content-type to dictionary object
ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
UploadControl.Add "ContentType",ContentType
'Get content of object
PosBeg = PosEnd+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
Else
'Get content of object
Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
PosBeg = Pos+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
End If
'Add content to dictionary object
UploadControl.Add "Value" , Value
'Add dictionary object to main dictionary
UploadRequest.Add name, UploadControl
'Loop to next object
BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
Loop

End Sub



'String to byte string conversion
Function getByteString(StringStr)
For i = 1 to Len(StringStr)
char = Mid(StringStr,i,1)
getByteString = getByteString & chrB(AscB(char))
Next
End Function
'Byte string to string conversion
Function getString(StringBin)
getString =""
For intCount = 1 to LenB(StringBin)
getString = getString & chr(AscB(MidB(StringBin,intCount,1)))
Next
End Function
%>

Nenhum comentário:

Postar um comentário

Popular Posts

- Arquivo -

 

Seguidores

Hora exata:

Total de visualizações de página