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

subir ficheros

Estas en el tema de subir ficheros en el foro de ASP Clásico en Foros del Web. Quiero que en mi pagina los usuarios puedan subir fotos pero subirlas a una carpeta no a la base de datos, ala base de datos ...
  #1 (permalink)  
Antiguo 24/03/2008, 06:03
 
Fecha de Ingreso: enero-2008
Mensajes: 65
Antigüedad: 16 años, 4 meses
Puntos: 0
subir ficheros

Quiero que en mi pagina los usuarios puedan subir fotos pero subirlas a una carpeta no a la base de datos, ala base de datos el nombre.
¿como puedo hacerlo?
He probado el esto:


<!--#include file="xelupload.asp"-->
<%
Dim objUpload, objFich, strNombreFichero
Dim strNombre, strEdad

'Creamos el objeto
set objUpload = new xelUpload

'Recibimos el formulario
objUpload.Upload()

'Mostramos total de ficheros recibidos
Response.Write ( objUpload.Ficheros.Count & " ficheros recibidos.")

'Mostramos los campos del formulario de texto:
Response.Write ("<p>Tu nombre es " & objUpload.Form("nombreusuario") & "<br>")
Response.Write ("<p>Tu edad es " & objUpload.Form("edad") & "<br>")

'Y ahora mostramos los datos del fichero enviado:
'Lo sacamos a una variable por comodidad
set objFich = objUpload.Ficheros("fichero")

Response.Write ("<p>" & objFich.Nombre & "<br>")
Response.Write("Tamaño: " & objFich.Tamano & "<br>")
Response.Write("Tipo de contenido: " & objFich.TipoContenido & "</p>")

'Guardamos el fichero, con su nombre, en el directorio
'en el que se encuentra esta página

objFich.Guardar(Server.MapPath("."))

'Y guardamos una copia, con nombre "subido.bin"

objFich.GuardarComo("subido.bin", Server.MapPath("."))

'Abrimos una conexión a una base de datos
Dim oConn, rs, SQL

set oConn = Server.CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.Recordset")

'Nos conectamos con un DSN
oConn.Open "DSN=Pruebas"

'Y abrimos la tabla Datos
SQL = "SELECT * FROM Datos"

'Abrimos el Recordset con cerrojo 2 (adLockPessimiestic)
'que permite modificaciones

rs.Open SQL, oConn, 0, 2

'Añadimos un nuevo registro
rs.AddNew

rs.Fields("nombre") = objUpload.Form("nombreusuario")
rs.Fields("edad") = objUpload.Form("edad")

'Guardamos el contenido del fichero en la base de datos:
'el nombre del fichero, su tipo
rs.Fields("nombrefichero") = objFich.Nombre
rs.Fields("contenido") = objFich.TipoContenido

'y los datos binarios
objFich.GuardarBD rs.Fields("datos")

rs.Update
rs.Close

Response.Write("Fichero guardado en base de datos.")

'Limpiamos objetos
set oFich = nothing
set objUpload = nothing
rs.Close
set rs = nothing
oConn.Close
set oConn = nothing

%>

Pero esto me lo guarda en la base de datos no, no me entero mucho, me podias ayudar.
Gracias y un saludo
  #2 (permalink)  
Antiguo 24/03/2008, 08:17
 
Fecha de Ingreso: agosto-2007
Mensajes: 665
Antigüedad: 16 años, 10 meses
Puntos: 4
Re: subir ficheros

Te recomiendo usar el componente aspupload, es muy sencillo hacerlo con este.
__________________
Al que le faltan las ideas le sobran los argumentos
  #3 (permalink)  
Antiguo 25/03/2008, 04:31
 
Fecha de Ingreso: enero-2008
Mensajes: 65
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: subir ficheros

He usado el Upload y me da el siguiente error:

ADODB.Stream error '800a0bbc'

Error al escribir en el archivo.

/adiblog/freeaspupload.asp, línea 65


Este es el trozo de codigo la linea 65 es la que esta en negrita

//Calls Upload to extract the data from the binary request and then saves the uploaded files
Public Sub Save(path)
Dim streamFile, fileItem
Dim barra
barra = chr (92)
if Right(path, 1) <> barra then path = path & barra

if not uploadedYet then Upload

For Each fileItem In UploadedFiles.Items
Set streamFile = Server.CreateObject("ADODB.Stream")
streamFile.Type = 1
streamFile.Open
StreamRequest.Position=fileItem.Start
StreamRequest.CopyTo streamFile, fileItem.Length
response.write (path &":"& fileItem.FileName)
streamFile.SaveToFile path & fileItem.FileName, 2
streamFile.close
Set streamFile = Nothing
fileItem.Path = path & fileItem.FileName
Next
End Sub

Public Function SaveBinRequest(path) //For debugging purposes
StreamRequest.SaveToFile path & "\debugStream.bin", 2
End Function

No he puesto todo el codigo por que es mucho pero si hace falta me lo decis y lo pongo.
Gracias y un saludo.
  #4 (permalink)  
Antiguo 25/03/2008, 04:41
 
Fecha de Ingreso: marzo-2008
Mensajes: 342
Antigüedad: 16 años, 2 meses
Puntos: 4
Re: subir ficheros

Debes Tener permiso de escritura en la carpeta que quieres guardar el archivo de lo contrario te saldrá ese error.

Un Saludo
  #5 (permalink)  
Antiguo 25/03/2008, 04:50
 
Fecha de Ingreso: enero-2008
Mensajes: 65
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: subir ficheros

Ya se lo he dado desde un principio, he entrado en el panel de control de mi servidor y a la carpeta que quiero que se guarden le he dado permiso de escritura y de lectura. ¿Es así o me queda de hacer algo mas?
Gracias un saludo
  #6 (permalink)  
Antiguo 26/03/2008, 04:34
 
Fecha de Ingreso: enero-2008
Mensajes: 65
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: subir ficheros

Ya esta solucionado Gracias.
  #7 (permalink)  
Antiguo 26/03/2008, 08:32
 
Fecha de Ingreso: marzo-2008
Mensajes: 342
Antigüedad: 16 años, 2 meses
Puntos: 4
Re: subir ficheros

Cita:
Iniciado por morte Ver Mensaje
Ya esta solucionado Gracias.
como lo solucionastes? con lo que te indique?
  #8 (permalink)  
Antiguo 26/03/2008, 11:57
 
Fecha de Ingreso: enero-2008
Mensajes: 65
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: subir ficheros

El problema es que escribia mal la ruta del servidor y la carpeta donde queria guardarlo.
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 14:38.