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

duda sobre el xelupload

Estas en el tema de duda sobre el xelupload en el foro de ASP Clásico en Foros del Web. Hola amigos... quisiera saber si hay alguna forma de que con este script al subir una imagen ya existente en la cartepta automaticamente le asigne ...
  #1 (permalink)  
Antiguo 25/06/2005, 12:33
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 4 meses
Puntos: 16
duda sobre el xelupload

Hola amigos... quisiera saber si hay alguna forma de que con este script al subir una imagen ya existente en la cartepta automaticamente le asigne un valor numerico consecutivo despues del nombre, por ejemplo si tengo un archivo.jpg y otro usuario quiere subir otro archivo del mismo nombre en vez de reemplazarlo agregarle algo asi como archivo1.jpg, y si a su vez otro usuario hace lo mismo seria archivo2.jpg y asi.... alguien ha hecho o algo asi o se le ocurre como poder hacerlo???? bueno eso pues saludos y gracias de antemano....
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #2 (permalink)  
Antiguo 25/06/2005, 12:41
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años
Puntos: 535
Para solucionar esos inconvenientes, lo que hago normalmente es siempre renombrar los archivos con el formato AAAAMMDDHHMMSS.ext (año mes dia hora minuto segundo).
Es casi imposible que se dupliquen los nombres, pero puede ocurrir. En ese caso, podrías agregarle un número aleatorio entero entre 0 y 100 al final del nombre de archivo y asunto solucionado.
__________________
...___...
  #3 (permalink)  
Antiguo 25/06/2005, 13:22
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 23 años, 2 meses
Puntos: 16
una pregunta quizas tonta...este año mes dia... es del server supongo?
  #4 (permalink)  
Antiguo 25/06/2005, 14:14
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 4 meses
Puntos: 16
mmmm Al se me ocurre tambien poder anteponerle al nombre de la imagen el id del porgucto asi jamas se me repetirian.... pero como podria hacerlo sin tener que llamar a una lectura de todos mis registros.... osea mi idea es esta
Código:
producto_sql="Insert Into productos (categoria,imagen,marca,modelo,descripcion,precio) values (" & categoria & ",'" & id & "-" & objFich.Nombre & "','" & marca & "','" & modelo & "','" & descripcion & "'," & precio & ")"
pero mi duda es como detecto el id tendria que hacer una consulta anterior y en el fondo poner en vez de id, id+1????... pero como quedaria la centencia sql???... como puedo hacer una centencia de lectura que devuelva el valor del id del ultimo registro slamente???... saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #5 (permalink)  
Antiguo 26/06/2005, 16:47
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 23 años, 2 meses
Puntos: 16
podrias hacer primero la incursion a la base de datos, luego el rs.update, tomas el valor del id en una variable y luego haces el upload
  #6 (permalink)  
Antiguo 26/06/2005, 17:09
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 4 meses
Puntos: 16
podrias darme un ejemplo que no entendi bien lo que me dices.... gracias
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #7 (permalink)  
Antiguo 27/06/2005, 02:59
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 20 años, 6 meses
Puntos: 18
otra opción sería añadir el ID de la sesión de la persona que sube el fichero al nombre. Eso sería un nombre de fichero único (hasta que el mismo usuario suba en la misma sesión el mismo fichero, claro. Pero dado este caso, me imagino que lo que él querría sería machacar la versión anterior, con lo que el problema lo tendrías resuelto)
  #8 (permalink)  
Antiguo 27/06/2005, 03:05
Avatar de codify  
Fecha de Ingreso: febrero-2002
Ubicación: Barcelona (España)
Mensajes: 183
Antigüedad: 23 años
Puntos: 1
Oye Al Zuwaga...
...me podrías explicar en que caso se daría la repetición de AAAAMMDDHHMMSS???...es que yo creo que es imposible que nunca se dé ese caso de repetición...
...yo uso ese sistema muy a menudo precisamente porque creo que es imposible...
...si me demuestras lo contrario, te lo agradecería, y empezaría a plantearme el buscar otro sistema...

...gracias por adelantado!...
__________________
====================
Codify
====================
  #9 (permalink)  
Antiguo 27/06/2005, 03:51
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 20 años, 6 meses
Puntos: 18
qué podría impedir que dos usuarios den de alta a la vez un fichero? nada. Y calculando en nanosegundos los tiempos del servidor, esa repetición sería factible.
  #10 (permalink)  
Antiguo 27/06/2005, 10:00
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años
Puntos: 535
Exacto, es difícil que ocurra pero no imposible. Bah, difícil si tenés poca concurrencia. Pero cuanto mayor sea el número de usuarios conectados que estén subiendo archivos, mayor es la ptobabilidad de que existan duplicados.
__________________
...___...
  #11 (permalink)  
Antiguo 27/06/2005, 10:26
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 4 meses
Puntos: 16
hola a todos... ami se me ocurrio antemonerle al nombre del archivo el id del registro, por lo que antes de agregar el registro o subir el archivo puse esto:

id = conn.Execute("SELECT MAX(id_producto) As MaxId FROM productos")
id = id("MaxId")+1

ahora mi duda es donde tengo que medificar para que el archivo se suba efectivamente con el id+nombre???... les dejo el codigo de mi pag
Código:
<script>
window.opener.location.reload();
</script>
<!--#include file="xelupload.asp"-->
<%
Dim Conn
Dim rs
Dim id
Dim producto_sql
Dim categoria_sql
Dim objUpload
Dim objFich
Dim maxtam
Dim categoria
Dim imagen
Dim marca
Dim modelo
Dim descripcion
Dim precio

'nuestro tamaño máximo
maxtam = 512 * 1024

set objUpload = new xelUpload
objUpload.Upload()

'recuperamos los campos usuario y edad
categoria = objUpload.Form("categoria")
marca = objUpload.Form("marca")
modelo = objUpload.Form("modelo")
descripcion = objUpload.Form("descripcion")
precio = objUpload.Form("precio")

'si no ha subido ningún fichero, le avisamos
if objUpload.Ficheros.Count = 0 then
	Response.Write("¡No has subido ningún fichero!")
else
    'Establecemos la conección a la base de datos
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../catalogo.mdb"))
	
	id = conn.Execute("SELECT MAX(id_producto) As MaxId FROM productos")
	id = id("MaxId")+1
	
	'accedemos al fichero por su nombre en el formulario
	set objFich = objUpload.Ficheros("imagen")
	if objFich.Tamano <= maxtam and (objFich.TipoContenido = "image/gif" Or objFich.TipoContenido = "image/pjpeg")then
		'Es el fichero correcto, vamos a guardarlo en todas partes. :-)
		
		'Primero, en nuestro directorio actual con el nombre que tiene
		objFich.Guardar Server.MapPath("../imagenes")

		'Ahora, en el directorio upload, con la fecha de hoy como nombre
		strNombreFichero = Day(Date) & Month(Date) & Year(Date)
		objFich.GuardarComo imagen, Server.MapPath("upload")

		'Creación de la sentencia SQL correspondiente 
        producto_sql="Insert Into productos (categoria,imagen,marca,modelo,descripcion,precio) values (" & categoria & ",'" & objFich.Nombre & "','" & marca & "','" & modelo & "','" & descripcion & "'," & precio & ")"

		'Ejecución de la orden
        Set rs = Conn.Execute(producto_sql)

        'Creación de la sentencia SQL correspondiente 
        categoria_sql="Select * From categorias Where id_categoria = " & categoria & ""

        'Ejecución de la orden
        Set rs = Conn.Execute(categoria_sql)

        'Se resta 1 al numero de productos de la categoría
        total_productos = rs("total_productos")
        total_productos = total_productos + 1

        'Creación de la sentencia SQL correspondiente
        categoria_sql="Update categorias Set total_productos = " & total_productos & " Where id_categoria = " & categoria & ""

        'Ejecución de la orden
        Set rs = Conn.Execute(categoria_sql)
		
		'¡Todo correcto!
		Response.Write "Se ha agregado el producto <b>" & marca & ":" & modelo & "</b>, "  _
		& "con la imagen " & objFich.Nombre & " de tamaño " & objFich.Tamano & "."

		'Limpiamos nuestro xelUpload y el fichero
		set oFich = nothing
		set objUpload = nothing

	else
		'No era un fichero válido
		Response.Write("El archivo seleccionado no es aceptado. ")
		Response.Write("Tiene que ser una imagen (GIF o JPG) de menos de 500k.")
	end if

end if
%>
se que es mucho pero porfavor si se pueden hacer de un tiempito para ver dode tengo que modificar para hacer lo que quiero... bueno saludos y gracias
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #12 (permalink)  
Antiguo 27/06/2005, 21:44
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 4 meses
Puntos: 16
por favor ayuda... he tratado de modificar infinitas veces estas lineas que creo que son las indicadas pero no tengo sesultados

'Primero, en nuestro directorio actual con el nombre que tiene
objFich.Guardar Server.MapPath("../imagenes")

'Ahora, en el directorio upload, con la fecha de hoy como nombre
strNombreFichero = Day(Date) & Month(Date) & Year(Date)
objFich.GuardarComo imagen, Server.MapPath("upload")

donde tengo que modificar para poder poner en vez del nombre el id+nombre???? o es en el archivo xelupload.asp??? si es asi podrian citar la linea de código... porfavor que me urje bastante tener el script que estoy haciendo para el miercoles... es un trabajo para la universidad... saludos y gracias
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #13 (permalink)  
Antiguo 28/06/2005, 08:56
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 4 meses
Puntos: 16
cambiar nombre a archivo subido con xelupload

Hola amigos... vi un codigo que sube las imagenes como fecha y hora que creo que hiso Al
Código:
 	imagen = Split(objFich.Nombre, ".")
		Extension = imagen(Ubound(imagen))
		strNombreFichero = Year(Now()) & Month(Now()) & Day(Now()) & Hour(Now()) & Minute(Now()) & Second(Now()) & "." & Extension
		objFich.GuardarComo strNombreFichero, Server.MapPath("../artistas")
Bueno la cosa es que he tratado de modificar estas lineas para guardar el archivo por id+nombre... logicamente la imagen forma parte de un registro en mi base de datos... para ello hice esto:
Código:
 id = conn.Execute("SELECT MAX(id_producto) As MaxId FROM productos")
id = id("MaxId")+1
Ahora mi duda es como puedo hacer para cambiar los datos de la fecha por los del id y el nombre original???.... saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #14 (permalink)  
Antiguo 28/06/2005, 09:14
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años
Puntos: 535
Yo creo que sería acá:

'Ahora, en el directorio upload, con la fecha de hoy como nombre
strNombreFichero = id & nombre
objFich.GuardarComo strNombreFichero, Server.MapPath("upload")
__________________
...___...
  #15 (permalink)  
Antiguo 28/06/2005, 09:25
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 4 meses
Puntos: 16
gracias Al me quedo asi:

nombre = objFich.Nombre
strNombreFichero = id & nombre
objFich.GuardarComo strNombreFichero, Server.MapPath("../imagenes")
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #16 (permalink)  
Antiguo 28/06/2005, 09:32
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años
Puntos: 535
¿viste que el mensaje que volviste a colocar y que uní a éste estaba de más?

;)
__________________
...___...
  #17 (permalink)  
Antiguo 27/02/2008, 17:28
Avatar de gorka_22  
Fecha de Ingreso: septiembre-2003
Mensajes: 95
Antigüedad: 21 años, 6 meses
Puntos: 1
Re: duda sobre el xelupload

Ya se que es un post antiguo pero tenía problemas a la hora de subir imagenes con el xelupload, por el tema que se sobreescribian imagenes y aqui me lo habeis solucionado

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 22:40.