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

Subir archivos al servidor sin componentes

Estas en el tema de Subir archivos al servidor sin componentes en el foro de ASP Clásico en Foros del Web. Si quieren subir archivos al servidor de forma gratuita y sin componentes, utilizen éste código: alan_upload.asp: Código: <% set fso=createobject("scripting.filesystemobject") class alan_upload function obtener_tamano(archivo) set ...
  #1 (permalink)  
Antiguo 07/11/2009, 12:08
 
Fecha de Ingreso: octubre-2009
Mensajes: 97
Antigüedad: 15 años, 6 meses
Puntos: 4
Subir archivos al servidor sin componentes

Si quieren subir archivos al servidor de forma gratuita y sin componentes, utilizen éste código:

alan_upload.asp:
Código:
<%
set fso=createobject("scripting.filesystemobject")
class alan_upload
function obtener_tamano(archivo)
set t=fso.getfile(archivo)
obtener_tamano=formatnumber(t.size/(1024*1024))
end function
function guardar(r,inf)  'Función que guarda los archivos
dim origen,todo,n,nombre,tipo,tamano,informe 'Declaración de variables
if "/"=right(r,1) then ruta=r else ruta=r&"/" end if  'Si la ruta no tiene una diagonal al final, se la ponemos.
origen=request.binaryread(request.totalbytes) 'Datos binarios
'Convertimos los datos binarios a una cadena
set rs=createobject("adodb.recordset")
rs.fields.append "datos",201,lenb(origen)
rs.open
rs.addnew
rs("datos").appendchunk origen
rs.update
separador=replace(request.servervariables("HTTP_CONTENT_TYPE"),"multipart/form-data; boundary=","") 'Éste separador separa los archivos.
todo_pr=split(rs("datos"),separador) 'Creamos un array con todos los archivos.
archivos=ubound(todo_pr)-1 'Contamos todos los archivos
for o=1 to archivos
todo=split(todo_pr(o),vbcrlf)  'Array separado por saltos de línea del archivo actual
n=split(todo(1),"\") 'Nombre de archvo previo
nombre=left(n(ubound(n)),len(n(ubound(n)))-1) 'Nombre de archivo
tipo=replace(todo(2),"Content-Type: ","") 'Tipo de contenido
set crear=fso.createtextfile(ruta&nombre,true)
for i=4 to ubound(todo)-1
if i=ubound(todo)-1 then
crear.write todo(i)
else
crear.write todo(i)&vbcrlf
end if
next
crear.close() 'Cerramos el archivo.
informe=informe&"Nombre: <b>"&nombre&"</b><br>Tamaño: <b>"&obtener_tamano(ruta&nombre)&" MB</b><br>Tipo de contenido: <b>"&tipo&"</b><hr>"  'Informe de todos los archivos.
tamano=tamano+csng(obtener_tamano(ruta&nombre)) 'Obtenemos el tamaño total de los archivos.
next
if inf=true then
guardar="<b>Se han subido correctamente los archivos:</b><br><br>"&informe&"<br>Total de archivos subidos: <b>"&archivos&"</b><br>Tamaño total de los archivos: <b>"&tamano&" MB</b>"
else
guardar=""
end if  'Checamos si el usuario eligio mostrar o no el informe
end function
end class
%>
upload.asp:
Código:
<!--#include file="alan_upload.asp"-->
<%server.scripttimeout=99999999  'Definimos el tiempo máximo de carga de la página.
on error resume next%>
<html><title>Subir archivos</title><body>
<script>function crear(n){document.f.onsubmit='return true';var inicio=document.getElementById('inicio');inicio.innerHTML='';var t='';for(i=1;i<n;i++){t=t+'Archivo '+i+': <input type=file name=archivo'+i+'><br>'} t=t+'Archivo '+n+': <input type=file name=archivo'+n+'><br><input type=submit value="Subir archivos"><br>Nota: no deje ningún campo vacío, sino ocurrirán errores';inicio.innerHTML=t}</script>
<%
if not request.servervariables("request_method")="POST" then
'Si no hay formulario, lo mostramos.
%>
<form name=f action="" method=post enctype="multipart/form-data" onsubmit="return false">
<span id=inicio>
¿Cuántos archivos quiere subir?: <input type=text name=c> <input type=button onclick=crear(this.form.c.value) value="Crear formulario">
</span>
</form>
<%
else  'Si hay formulario
set up=new alan_upload  'Creamos la clase.
response.write up.guardar(server.mappath("upload"),true) 'Se pone la ruta donde desea guardar el archivo. Después si se pone true, aparacerá un informe del archivo. Si se pone false, no aparecera nada.
if err.description<>"" then  'Si ocurre un error, lo describimos
response.write "Hubo un error al subir los archivos:<br>"&err.description
end if
end if
%>
</body></html>
Hay que crear una carpeta llamada "upload".
Se puede subir más de un archivo por formulario.

Última edición por bebo; 16/11/2009 a las 23:06 Razón: Mejoró el código
  #2 (permalink)  
Antiguo 07/11/2009, 13:16
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 4 meses
Puntos: 126
Respuesta: Subir archivos al servidor sin componentes

Hola

bebo, buen aporte Pero si estás interesado en subir archivos al serividor sin usar componentes, informate por ejemplo de Xelupload

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 13/11/2009, 09:59
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Subir archivos al servidor sin componentes

Se ve buena la solucion checando gracias
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 16:28.