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

Insertar Imagen en DB

Estas en el tema de Insertar Imagen en DB en el foro de ASP Clásico en Foros del Web. Buenas tardes, Tengo el siguiente problema y es que tengo que insertar una imagen en una base de datos (tipo BLOB) nada de rutas, la ...
  #1 (permalink)  
Antiguo 27/01/2009, 06:41
 
Fecha de Ingreso: noviembre-2008
Mensajes: 20
Antigüedad: 15 años, 6 meses
Puntos: 0
Insertar Imagen en DB

Buenas tardes,

Tengo el siguiente problema y es que tengo que insertar una imagen en una base de datos (tipo BLOB) nada de rutas, la imagen.

La base de datos SQL.

Mediante un form recojo los valores del producto a updatear la imagen y el nombre del fichero pero no encuentro nada para convertir este fichero a binario para insertarlo.
Por favor os agradecería cualquier ayuda.

Gracias

Última edición por tasecito; 27/01/2009 a las 06:55
  #2 (permalink)  
Antiguo 27/01/2009, 07:20
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
Respuesta: Insertar Imagen en DB

las bases de datos no son ficheros.
pero si insistes.

http://www.aspupload.com/manual_db.html
  #3 (permalink)  
Antiguo 27/01/2009, 09:51
 
Fecha de Ingreso: noviembre-2008
Mensajes: 20
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Insertar Imagen en DB

Ok.

He probado con:
Set Upload = Server.CreateObject("Persits.Upload")

' Limitar tamaño
Upload.SetMaxSize 52428800, True
' Protección por si no envía nada
Upload.IgnoreNoPost=True


set fichero = Upload.form("upfichero")
codprod = Upload.form("producto")

' Obtener el objeto
Set File = Upload.Files(fichero)
Set rs = Server.CreateObject("adodb.recordset")
sql = "select * from articulos where codarticulo='"& codprod &"'"
rs.Open sql, conn, 2, 3
rs.Close
response.Write(sql)

' Reabrimos recordset para subir archivo
rs.Open "articulos", conn, 2, 3
rs.AddNew
rs("foto") = File.Binary
rs.Update

Pero tengo que poner enctype="multipart/form-data" en el form y ahora no me recoge los valores que rescato del formulario mediante:
set fichero = Upload.form("upfichero")
codprod = Upload.form("producto")

Por favor que hago mal?
  #4 (permalink)  
Antiguo 27/01/2009, 09:54
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
Respuesta: Insertar Imagen en DB

aps.. es que (segun yo) debes hacerlo por separado.

un form para los datos, los cuales se graban rapidamente
y otro form con SOLO la imagen, la cual puede tardar mucho e incluso caerse.


  #5 (permalink)  
Antiguo 27/01/2009, 10:38
 
Fecha de Ingreso: noviembre-2008
Mensajes: 20
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Insertar Imagen en DB

El problema es que para montar la sentencia sql para updatear el campo de foto necesito el valor de a que producto lo hago.

Se pueden hacer dos forms con diferente name que ataquen en el action al mismo asp sin morir en el intento?
Si fuera posible, como hago referencia a cada form?
  #6 (permalink)  
Antiguo 27/01/2009, 11:01
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Respuesta: Insertar Imagen en DB

ummmmm

Cita:
El problema es que para montar la sentencia sql para updatear el campo de foto necesito el valor de a que producto lo hago.
+ inserta el formulario basico como dice Muzztein
+ obten el id que acabas de insertar
+ redirecciona al formulario de subir la foto
+ sube la foto y actualiza con base a el id que enviastes en la redireccion

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #7 (permalink)  
Antiguo 27/01/2009, 12:53
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Respuesta: Insertar Imagen en DB

¿Puedes mostrar tu formulario?

A mi se me hace que no estás recogiendo adecuadamente los campos, en teoría no deberías tener ningún problema en recibir la fotografía y los datos de un mismo formulario en tanto el componente lo permita (como es el caso del que estás usando).

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #8 (permalink)  
Antiguo 28/01/2009, 02:58
 
Fecha de Ingreso: noviembre-2008
Mensajes: 20
Antigüedad: 15 años, 6 meses
Puntos: 0
De acuerdo Respuesta: Insertar Imagen en DB

Allá va el código del form:

<form name="frmUploadImg" method="post" action="a_uploadimage.asp" onSubmit="javascript: return frmCheck();" enctype="multipart/form-data">

<input type="hidden" name="producto" value="<%=valor%>">
<table align="center" border="0" cellpadding="1" cellspacing="1" width="100%">

<tr>
<td>
<table align="center" border="0" cellpadding="1" cellspacing="1" width="100%">
<tr><td colspan="4" class="tdCabecera1" style="border-bottom: solid 2px #000000;">UPLOAD IMAGEN</td></tr>
<tr>
<td width="9%" height="61" class="tdCabecera4">Fichero</td>
<td><input type="file" name="upfichero" size="30"></td>
</tr>
<tr><td colspan="20">&nbsp;</td></tr>
<tr>
<td align="center" colspan="4">
<input type="submit" value="Aceptar">&nbsp;&nbsp;&nbsp;
<input type="button" value="Volver" onClick="javascript: location.href='i_webimagelst.asp';">&nbsp;&nbsp;&n bsp;
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
  #9 (permalink)  
Antiguo 29/01/2009, 11:13
 
Fecha de Ingreso: noviembre-2008
Mensajes: 20
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Insertar Imagen en DB

Hola,

He conseguido que me recoja los valores del formulario pero no me sube el fichero, me podriais decir que está mal en el codigo por favor?

Set Upload = Server.CreateObject("Persits.Upload")

' Limite
Upload.SetMaxSize 52428800, True
Count = Upload.Save

' Protección por si no envía nada
Upload.IgnoreNoPost=True

codprod = Upload.form("producto")

' Obtener el objeto
Set fichero = Upload.Files("upfichero")
'Conexion DB
Set rs = Server.CreateObject("adodb.recordset")
sql = "select * from articulos where codarticulo='"& codprod &"'"
rs.Open sql, conn, 1, 1
rs.Close
response.Write(sql)
' Reabrimos recordset para subir archivo
rs.Open "articulos", conn, 2, 3
'rs.AddNew
rs("foto") = fichero.Binary
rs.Update
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 23:17.