Pregunta: | 10557 - DEJAR A USUARIOS CARGAR FILES EN SERVIDOR SIN SER EN BDATOS |
Autor: | Damian Ares |
La duda es como hacer para que el usuario cargue un archivo en el servidor pero no quiero que se guarde en una base de datos sino en una subcarpeta del espacion que tengo en el servidor
la forma que tengo me da dos opciones, cargar en base datos o file.savetodisk pero tengo que poner toda la direccion: C:\windows\escritorio\ como hago para que guarde en http:\dominio.com\yo\carpeta\ |
Respuesta: | cristian quintana bernal |
hola,,,yo lo he echo con asp....lo ideas es: desde una formulario html pasar los datos y la carpeta que el cliente web cree en tu espacio de servidor a travez de una asp ,la asp maneja tres objetos dos dll de envio de email y descarga de archivo y creacion de directorio ,el tercero el objeto que pone cosas como archivos en esa carpeta creada por el cliente web. yo uso los sigiente jmail.dll envio de email w3,upload.dll descarga de archivos y por ultimo filesystemobject qie pono cosas en la carpeta. jmail y w3upload se bajan desde internet en dimac.net gratuitamente y funsiona para equipos con windows 98 filesystem debes leer en cursos asp disponobles .por ultimo necesitas el ip de un servidor de correo para que pruebes. toda la captura de los datos del html debes hacerlo con upload.form("algo") al continuacion te pego el codigo solo del asp..suerte
<%@ Language=VBScript %> <HTML> <HEAD> </HEAD> <BODY> <% 'Create the JMail message Object set msg = Server.CreateOBject("JMail.Message") Set upload = Server.CreateObject("w3.Upload") 'Check for attachments and add them to the email set attachment = upload.Form("attachment") if attachment.IsFile then msg.AddCustomAttachment attachment.filename, attachment.item, false end if 'Set logging to true to ease any potential debugging 'And set silent to true as we wish to handle our errors ourself msg.Logging = true msg.silent = true 'Get the form variables, using the upload object Name = upload.Form("name") SenderEmail = upload.Form("email") Subject = "Regarding " & upload.Form("subject") Recipient = upload.Form("recipient") Body = upload.Form("mensaje") 'And apply them to the message msg.From = SenderEmail msg.FromName = Name msg.AddRecipient Recipient msg.Subject = Subject msg.Body = Body 'To capture any errors which might occur, we wrap the call in an IF statement if not msg.Send("tu numero de servidor de correo") then Response.write "<pre>" & msg.log & "</pre>" else Response.write "mensaje enviado!" end if 'And we're done! the message has been sent. %> <% 'se crea la instancia del objeto 'Set upload = Server.CreateObject("W3.Upload") %> <% 'se crea la instancia del objeto Set fsys = CreateObject("Scripting.FileSystemObject") %> <% ' limpiar la cadena del usuario carpeta=upload.form("carpeta") carpeta=replace(carpeta,"."," ") carpeta=replace(carpeta,">"," ") carpeta=replace(carpeta,"<"," ") carpeta=replace(carpeta,"/"," ") carpeta=replace(carpeta,"\"," ") carpeta=replace(carpeta,":"," ") carpeta=replace(carpeta,"?"," ") carpeta=replace(carpeta,"*"," ") carpeta=replace(carpeta,chr(34)," ") carpeta=replace(carpeta,"'"," ") carpeta=trim(carpeta) %> <% ' existe carpeta de trabajo si no se crea if not fsys.FolderExists("c:\uploads\" & carpeta) then fsys.CreateFolder "c:\uploads\" & carpeta End if %> <% ' crear archivo de texto con el mensaje strmensaje=trim(upload.form("mensaje")) if strmensaje<>"" then fecha=replace(date,"/","") hora=replace(time,":","") hora=replace(hora,".","") hora=replace(hora," ","") archivotexto = "c:\uploads\" & carpeta & "\mensaje_" & fecha & "_" archivotexto = archivotexto & hora & ".txt" ' crear el archivo de texto set a = fsys.CreateTextFile(archivotexto,true) a.writeline(strmensaje) a.close set a=nothing end if set fsys = nothing %> <% ' filtro de archivos Set elarchivo = upload.Form("attachment") if elarchivo.size>4194000 then 'tamaño en bytes response.write "El archivo es demasiado grande para ser enviado.<p>" ' response.write "<a href='javascript:history.back()'>Regresar</a>" 'exit sub end if if instr(elarchivo.filename,".")<>0 then extension=mid(elarchivo.filename,instr(elarchivo.filename,".")) if trim(extension)=".exe" or trim(extension)=".vbs" then response.write "Imposible enviar ese tipo de archivo.<p>" 'response.write "<a href='javascript:history.back()'>Regresar</a>" 'exit sub end if end if %> <% 'guardar el archivo if elarchivo.IsFile then strsave="c:\uploads\" & carpeta & "\" & elarchivo.filename elarchivo.SaveToFile(strsave) 'elarchivo.SaveAsUniqueFile(strsave) end if Set upload = nothing response.write "Se envio el archivo : " & elarchivo.filename response.write "<br>Tamaño : " & elarchivo.size %> </BODY> </HTML> |