Foros del Web » Programando para Internet » ASP Clásico »

Tip: Como obtener los datos de un input file...

Estas en el tema de Tip: Como obtener los datos de un input file... en el foro de ASP Clásico en Foros del Web. Código PHP: <% Response . Buffer  =  true Response . Clear 'sPath es la ruta fisica para subir el archivo sPath="" %> <!-- #INCLUDE file="upload_functions.inc" --> <% byteCount = Request.TotalBytes RequestBin = Request.BinaryRead(byteCount) Set UploadRequest = CreateObject("Scripting.Dictionary") Set MyFileObject = Server.CreateObject("Scripting.FileSystemObject") BuildUpload(RequestBin) ' ejemplo de como obtener los datos de otro campo del formulario if  UploadRequest ...
  #1 (permalink)  
Antiguo 22/08/2003, 00:49
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 23 años
Puntos: 7
Información Tip: Como obtener los datos de un input file...

Código PHP:
<%
Response.Buffer true
Response
.Clear
'sPath es la ruta fisica para subir el archivo
sPath=""
%>
<!-- #INCLUDE file="upload_functions.inc" -->
<%
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Set UploadRequest = CreateObject("Scripting.Dictionary")
Set MyFileObject = Server.CreateObject("Scripting.FileSystemObject")
BuildUpload(RequestBin)
'
ejemplo de como obtener los datos de otro campo del formulario
if UploadRequest.Exists("txtnombre"then sNombre=UploadRequest.Item("txtnombre").Item("Value")
'asumiendo que el campo file se llama "filimagen"
sImagen=UploadRequest.Item("filimagen").Item("FileName")
if len(sImagen)>0 then
    sFileName=Right(sImagen,Len(sImagen)-InstrRev(sImagen,"\"))
    sValue=UploadRequest.Item("filimagen").Item("Value")
    sFName=sFileName
    sFileName=sPath & "\" & sFileName
    '
determinamos el tamaño del archivo
    lSize
=LenB(sValue)
    
usamos CreateTextFile para estar seguros de que cree el archivo
    Set objFile 
MyFileObject.CreateTextFile(sFileName)
    For 
1 to lSize
       objFile
.Write chr(AscB(MidB(sValue,i,1)))
    
Next
    objFile
.Close
    Set objFile 
Nothing
End 
if
Set UploadRequest Nothing
Set MyFileObject 
Nothing
%> 
el archivo upload_functions.inc contiene:
Código PHP:
<%
Function 
BuildUpload(RequestBin)
     
PosBeg 1
     PosEnd 
InstrB(PosBeg,RequestBin,getByteString(chr(13)))
     
boundary MidB(RequestBin,PosBeg,PosEnd-PosBeg)
     
boundaryPos InstrB(1,RequestBin,boundary)
     Do 
until (boundaryPos=InstrB(RequestBin,boundary getByteString("--")))
          
Dim UploadControl
          Set UploadControl 
CreateObject("Scripting.Dictionary")
          
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)
          If 
PosFile<>AND (PosFile<PosBoundThen
               PosBeg 
PosFile 10
               PosEnd 
InstrB(PosBeg,RequestBin,getByteString(chr(34)))
               
FileName getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
               
UploadControl.Add "FileName"FileName
               Pos 
InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
               
PosBeg Pos+14
               PosEnd 
InstrB(PosBeg,RequestBin,getByteString(chr(13)))
               
ContentType getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
               
UploadControl.Add "ContentType",ContentType
               PosBeg 
PosEnd+4
               PosEnd 
InstrB(PosBeg,RequestBin,boundary)-2
               Value 
MidB(RequestBin,PosBeg,PosEnd-PosBeg)
          Else
               
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
          
UploadControl.Add "Value"Value     
          UploadRequest
.Add nameUploadControl
          BoundaryPos
=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
     
Loop
End 
Function

Function 
GetByteString(StringStr)
     For 
1 to Len(StringStr)
          
char Mid(StringStr,i,1)
          
getByteString getByteString chrB(AscB(char))
     
Next
End 
Function

Function 
GetString(StringBin)
     
getString =""
     
For intCount 1 to LenB(StringBin)
          
getString getString chr(AscB(MidB(StringBin,intCount,1))) 
     
Next
End 
Function
%> 
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:16.