|  Hola u_goldmanGracias por tu paciencia pero te comento:
 El valor de RutaUpload puede variar en función de su procedencia y el ar chivo a realizar el Upload al servidor puede ser cualquiera
 esta página lo que hace en realidad es subir un archivo al servidor sin necesidad de ninguna .dll
 A continuación te envío el código pus en alguna ocasión alguien lo pueda necesitar.
 
 <%
 '----------------------------------------------------------------
 ' Declarar variables del documento para ASP
 '----------------------------------------------------------------
 Option Explicit
 Dim Func, ForWriting, adLongVarChar, lngNumberUploaded
 Dim noBytes, binData, RST, LenBinary, strDataWhole
 Dim strBoundry, lngBoundryPos, lngCurrentBegin, lngCurrentEnd
 Dim strData, lngBeginFileName, lngEndFileName, strFilename
 Dim tmpLng, PrevPos, FileName, lngCT, lngBeginPos, lngEndPos
 Dim lngDataLenth, strFileData, fso, f
 Dim RutaUpload, Id
 '----------------------------------------------------------------
 ' Quitar el caché del navegador
 '----------------------------------------------------------------
 Response.addHeader "pragma", "no-cache"
 Response.CacheControl = "Private"
 Response.Expires = 0
 '----------------------------------------------------------------
 RutaUpload = request.querystring("Ruta")
 %>
 <html>
 <head>
 ..................
 Código html
 ..................
 <%
 Func = Request("Func")
 If Len(Func) = 0 then
 Func = 1
 End If
 Select Case Func
 case 1
 %>
 ..................
 Código html
 ..................
 <%
 Case 2
 ForWriting = 2
 adLongVarChar = 201
 lngNumberUploaded = 0
 
 noBytes = Request.TotalBytes
 binData = Request.BinaryRead (noBytes)
 
 Set RST = CreateObject("ADODB.Recordset")
 LenBinary = LenB(binData)
 
 if LenBinary > 0 then
 RST.Fields.Append "myBinary", adLongVarChar, LenBinary
 RST.Open
 RST.AddNew
 RST("myBinary").AppendChunk BinData
 RST.Update
 strDataWhole = RST("myBinary")
 End If
 
 strBoundry = Request.ServerVariables ("HTTP_CONTENT_TYPE")
 lngBoundryPos = instr(1,strBoundry,"boundary=") + 8
 strBoundry = "--" & right(strBoundry,len(strBoundry)-lngBoundryPos)
 
 lngCurrentBegin = instr(1,strDataWhole,strBoundry)
 lngCurrentEnd = instr(lngCurrentBegin + 1,strDataWhole,strBoundry) - 1
 
 do while lngCurrentEnd > 0
 strData = mid(strDataWhole,lngCurrentBegin, lngCurrentEnd - lngCurrentBegin)
 strDataWhole = replace(strDataWhole,strData,"")
 
 lngBeginFileName = instr(1,strdata,"filename=") + 10
 lngEndFileName = instr(lngBeginFileName,strData,chr(34))
 
 if lngBeginFileName = lngEndFileName and lngNumberUploaded = 0 then
 Response.Write "<FONT FACE=Verdana SIZE=5>Ha ocurrido un error</FONT><BR><BR>"
 Response.Write "<FONT FACE=Verdana SIZE=2><B>Explicación:</B><BR>"
 Response.Write "1) Deberías seleccionar al menos 1 archivo.<BR>"
 Response.Write "2) Deberías seleccionar los archivos en orden, de uno en uno y de arriba a abajo.<BR><BR>"
 Response.Write "<B>Solución:</B><BR>"
 Response.Write "Retrocede pulsando el botón de <B>Retroceder</B> e inténtalo de nuevo.</FONT><BR><BR>"
 Response.Write "<INPUT TYPE=Button onclick=history.go(-1) value='<< Retroceder' ID='button'1 NAME='button'1 >"
 Response.End
 end if
 
 if lngBeginFileName <> lngEndFileName then
 strFilename = mid(strData,lngBeginFileName,lngEndFileName - lngBeginFileName)
 tmpLng = instr(1,strFilename,"\")
 
 Do While tmpLng > 0
 PrevPos = tmpLng
 tmpLng = instr(PrevPos + 1,strFilename,"\")
 Loop
 
 FileName = right(strFilename,len(strFileName) - PrevPos)
 
 lngCT = instr(1,strData,"Content-Type:")
 
 If lngCT > 0 then
 lngBeginPos = instr(lngCT,strData,chr(13) & chr(10)) + 4
 Else
 lngBeginPos = lngEndFileName
 End If
 
 lngEndPos = len(strData)
 
 lngDataLenth = lngEndPos - lngBeginPos
 
 strFileData = mid(strData,lngBeginPos,lngDataLenth)
 
 Set fso = CreateObject("Scripting.FileSystemObject")
 
 Set f = fso.OpenTextFile(server.mappath(RutaUpload ) & FileName, ForWriting, True)
 response.write FileName
 
 f.Write strFileData
 set f = nothing
 set fso = nothing
 
 lngNumberUploaded = lngNumberUploaded + 1
 
 End If
 
 lngCurrentBegin = instr(1,strDataWhole,strBoundry)
 lngCurrentEnd = instr(lngCurrentBegin + 1,strDataWhole,strBoundry) - 1
 loop
 
 Response.Write "<FONT FACE=Verdana SIZE=5>Fichero(s) subido(s) al servidor</FONT><BR><BR>"
 Response.Write "<FONT FACE=Verdana SIZE=2>" & lngNumberUploaded & " fichero(s) subidos al servidor.</FONT><BR><BR>"
 
 End Select
 %>
 </body>
 </html>
 
 Gracias de nuevo
     |