Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/01/2008, 08:35
baditxuk
 
Fecha de Ingreso: enero-2007
Mensajes: 284
Antigüedad: 18 años, 4 meses
Puntos: 1
subir fotos a BD

Hola a todos.
Tengo en una pagina la opcion de subir una foto a la BD mediante un campo de archivo. En la BD viene la foto como un MEDIUMBLOB, o sea q no subo el enlace sino la foto en sí. Todo esto me funciona genial.

El problema me surge cuando quiero que haya en la misma pagina la opcion de subir 2 fotos cada una con su correspondiente campo de archivo.
Ahi es cuando me estoy volviendo majareta.
Como lo puedo hacer?

Os dejo el codigo que tengo para subir 1 foto.

INSERT.ASP

<!--#include file="Uploader.asp"-->

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<%

Response.Buffer = True

' load object
Dim load
Set load = new Uploader

' inicializando el objeto
load.initialize

' Datos binarios del fichero
Dim fileData
fileData = load.getFileData("file")
' Nombre del fichero
Dim fileName
fileName = LCase(load.getFileName("file"))
' Path del fichero
Dim filePath
filePath = load.getFilePath("file")
' Path completo del fichero
Dim filePathComplete
filePathComplete = load.getFilePathComplete("file")
' Tamano del fichero
Dim fileSize
fileSize = load.getFileSize("file")
' Tamano traducido del fichero
Dim fileSizeTranslated
fileSizeTranslated = load.getFileSizeTranslated("file")
' Tipo de fichero
Dim contentType
contentType = load.getContentType("file")
' No. de elementos del Form
Dim countElements
countElements = load.Count

' destruimos el objeto
Set load = Nothing
%>

<html>
<style type="text/css">
<!--
body {
background-color: #EAECEB;
}
-->
</style><head>
<title>Insertar imagen en base de datos</title>
</head>
<body>
<%
texto="foto1"
extension=right(filename,3)
if extension="jpg" or extension="gif" then
If fileSize > 1200000 Then%>
<script language="VBScript">
resultado = MSGBOX ("¡¡ERROR!!El tamaño de la foto es demasiado grande", VBCRITICAL, "SUBIR IMAGEN")
document.location.href="prueba.asp"
</script>
<%else
' Comprobamos que realmente se ha insertado el fichero en la base de datos
If fileSize > 0 Then

Dim connStr
Set connStr = Server.CreateObject("ADODB.Connection")
connStr.Open "Driver={MySQL ODBC 3.51 Driver};SERVER=localhost;Port=3306;Database=web;Ui d=root;Pwd=123123;Option=3;"


' Recordset
Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open "datos", connStr, 2, 2


' Insertando datos
rs.AddNew
rs("texto1")=texto
rs("foto1").AppendChunk fileData
rs("nombre1")=fileName
rs.Update


response.Redirect("prueba.asp")
%>

<%Else%>
<script language="VBScript">
resultado = MSGBOX ("¡¡ERROR!!No has seleccionado ninguna foto", VBCRITICAL, "SUBIR IMAGEN")
document.location.href="prueba.asp"
</script>
<%End If


End If

else%>
<script language="VBScript">
resultado = MSGBOX ("¡¡ERROR!!El archivo seleccionado no es una imagen", VBCRITICAL, "SUBIR IMAGEN")
document.location.href="prueba.asp"
</script>
<%end if%>
</body>
</html>

MOSTRAR.ASP
<%
Response.AddHeader "Pragma", "no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache"

Response.Buffer = True


' Cadena de conexion
Dim connStr
Set connStr = Server.CreateObject("ADODB.Connection")
connStr.Open "Driver={MySQL ODBC 3.51 Driver};SERVER=localhost;Port=3306;Database=web;Ui d=root;Pwd=123123;Option=3;"

' Recordset
Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")

' abrimos la conexion
sql= "select foto1 from datos"
set rs=connStr.execute(sql)

Response.BinaryWrite rs("foto1")

rs.Close
Set rs = Nothing
%>

Y dentro de la pagina principal tengo(donde hago la llamada a mostrar la foto):

<form action="insert.asp" method="post" enctype="multipart/form-data" name="form1">
.....
<img src="mostrar.asp" alt="" name="foto1" width="100" height="135" border="1" id="foto1"></p>
<p>
<input type="file" name="file">
<input name="boton1" type="submit" id="boton1" value="aceptar">
....

Alguien me puede decir que opciones tengo?

GRACIAS.