¿Alguien sabe como hacer para que cuando subas una imagen al servidor, con upload, esta tenga un nombre aleatorio y no pueda sustituir a otra ya existente?
por mucho que busco nadie lo exploca con claridad, alguien se anima en php
| |||
problema, necesito anteponer nºs aleatorios delante del archivo a subir ¿Alguien sabe como hacer para que cuando subas una imagen al servidor, con upload, esta tenga un nombre aleatorio y no pueda sustituir a otra ya existente? por mucho que busco nadie lo exploca con claridad, alguien se anima en php |
| |||
Re: problema, necesito anteponer nºs aleatorios delante del archivo a subir Lo siento mucho preo el problema es doble 1º no me funciona y 2º soy novato parte del codigo es este y no se que cambios hacer ni donde meter nada: $_POST['club'] = mosGetParam($_POST, 'club'); $_POST['city'] = mosGetParam($_POST, 'city'); $_POST['street'] = mosGetParam($_POST, 'street'); $_POST['plz'] = mosGetParam($_POST, 'plz'); $_POST['country'] = mosGetParam($_POST, 'country'); //Bild $userfile2=(isset($_FILES['userfile']['tmp_name']) ? $_FILES['userfile']['tmp_name'] : ""); $userfile_name=(isset($_FILES['userfile']['name']) ? $_FILES['userfile']['name'] : ""); $imagesize = $_FILES['userfile']['size']; if (( $imageenabled == 2 ) || ( ($imageenabled == 1) && (!empty($userfile_name)) ) ) { $base_Dir = ELPATH.'/../../images/eventlist/location/'; $sizelimit = $sizelimit*1024; //size limit in kb if (empty($userfile_name)) { mosRedirect("index.php?option=$option&Itemid=$Item id", _EVENTS_IMAGEEMPT." "); } if ($imagesize > $sizelimit) { mosRedirect("index.php?option=$option&Itemid=$Item id", _EVENTS_IMAGESIZEBIG." "); } $filename = split("\.", $userfile_name); if (eregi("[^0-9a-zA-Z_]", $filename[0])) { mosRedirect("index.php?option=$option&Itemid=$Item id", _EVENTS_IMAGECHARACT." "); } if (file_exists($base_Dir.$userfile_name)) { mosRedirect("index.php?option=$option&Itemid=$Item id", _EVENTS_IMAGEEXIST." "); } if ((strcasecmp(substr($userfile_name,-4),".gif")) && (strcasecmp(substr($userfile_name,-4),".jpg")) && (strcasecmp(substr($userfile_name,-4),".png")) && (strcasecmp(substr($userfile_name,-4),".bmp"))) { mosRedirect("index.php?option=$option&Itemid=$Item id", _EVENTS_IMAGETYPE." "); } if (!move_uploaded_file ($_FILES['userfile']['tmp_name'],$base_Dir.$_FILES['userfile']['name']) || !mosChmod($base_Dir.$_FILES['userfile']['name'])) { mosRedirect("index.php?option=$option&Itemid=$Item id", _EVENTS_IMAGEFAIL." "); } else { $file = $base_Dir.$userfile_name; //chmod Bild @chmod ($file, octdec($imagechmod)); //Vorbereiten auf Thumbnailerstellung $thumbdir = $base_Dir.'small/'; $save = $thumbdir.$userfile_name; if ($imageprob = 1) { $imageprob = TRUE; } else { $imageprob = FALSE; } if ($gddisabled == 1) { evlist_imgd::thumb($file, $save, $imagewidth, $imagehight, $imageprob); } } $_POST['locimage'] = $userfile_name ; } de verdad necesito este cambio. gracias a todos |
| ||||
Re: problema, necesito anteponer nºs aleatorios delante del archivo a subir 1.- Pon despues de $_POST['country'] = mosGetParam($_POST, 'country'); esto: Código PHP: Haz el cambio y nos avisas como te fue. Suerte! |
| ||||
Re: problema, necesito anteponer nºs aleatorios delante del archivo a subir Para mi es en la linea: Código PHP: Código PHP: |
| ||||
Re: problema, necesito anteponer nºs aleatorios delante del archivo a subir Sip... lo que pasa es que si la agrega en Basedir tambien va a darle la misma fecha/hora de la pequeña foto... y asi las va a poder identificar con el mismo nombre y tambien a los permisos que esta dandole al archivo. |
| |||
Re: problema, necesito anteponer nºs aleatorios delante del archivo a subir ya lo realice como dice marvin y nada , me dice que la imagen ya existe y no la renombra, teneis alguna idea mas, gracias por vuestra ayuda |
| |||
Re: problema, necesito anteponer nºs aleatorios delante del archivo a subir UH! UH! casi casi lo hice como me dice @andrex y al menos el archivo ya se remonbra con la fecha lo que sucede es que no se ve la imagen, nos acercamos, gracias |
| |||
Re: problema, necesito anteponer nºs aleatorios delante del archivo a subir @ndrex eres mi salvador junto con marvin, pero eso ultimo no lo entiendo muy bien podias esplicarmelo como para tontos, tio te lo agradezco un saludo y gracias |
| ||||
Re: problema, necesito anteponer nºs aleatorios delante del archivo a subir Lo ultimo que te dice @ndreX! es que revises el codigo en donde muestras la foto... Postealo por aca para ver que podemos hacer. Y sip... error mio el haberte dicho que pusieras todo en Basedir ya que el nombre de la foto va a mantener el mismo nombre :P Weno... por ahora me voy al cine :D Suerte men! |
| |||
Re: problema, necesito anteponer nºs aleatorios delante del archivo a subir Vamos a ver si podemos terminar y os invito a algo, no estoy seguro pero creo que el codigo que me pedis es este en 3 bloques lo pongo ya me direis: </td> <td rowspan="4" align="left"> <?php //Zellenbereich f?r flyer if (!empty($row->datimage)) { $original = $mosConfig_live_site."/images/eventlist/events/".$row->datimage; $thumb = $mosConfig_live_site."/images/eventlist/events/small/".$row->datimage; if (file_exists(ELPATH."/../../images/eventlist/events/small/".$row->datimage)) { $iminfo = @getimagesize("images/eventlist/events/".$row->datimage); $widthev = $iminfo[0]; $heightev = $iminfo[1]; ?> <a href="javascript:void(window.open('<?php echo $original; ?>','Popup','width=<?php echo $widthev; ?>,height=<?php echo $heightev; ?>,location=no,menubar=no,scrollbars=no,status=no, toolbar=no,resizable=no'));"> <img src="<?php echo $thumb; ?>" alt="thumb" /></a> <?php } else { ?> <img src="<?php echo $original; ?>" width="<?php echo $imagewidth; ?>" height="<?php echo $imagehight; ?>" alt="orginal" /> <?php } } else { echo " "; } ?> </td> ---------------------------------------------- </td> <td rowspan="3"> <?php //Zellenbereich f?r flyer if (!empty($row->locimage)) { $originalloc = $mosConfig_live_site."/images/eventlist/location/".$row->locimage; $thumbloc = $mosConfig_live_site."/images/eventlist/location/small/".$row->locimage; if (file_exists(ELPATH."/../../images/eventlist/location/small/".$row->locimage)) { $iminfoloc = @getimagesize("images/eventlist/location/".$row->locimage); $widthloc = $iminfoloc[0]; $heightloc = $iminfoloc[1]; ?> <a href="javascript:void(window.open('<?php echo $originalloc; ?>','Popup','width=<?php echo $widthloc; ?>,height=<?php echo $heightloc; ?>,location=no,menubar=no,scrollbars=no,status=no, toolbar=no,resizable=no'));"> <img src="<?php echo $thumbloc; ?>" alt="thumb" /></a> <?php } else { ?> <img src="<?php echo $originalloc; ?>" width="<?php echo $imagewidth; ?>" height="<?php echo $imagehight; ?>" alt="orginal" /> <?php } } else { echo " "; } ?> </td> ---------------------------------------------- <td rowspan="3"> <?php //Zellenbereich f?r flyer if (!empty($l_rows[0]->locimage)) { $originalloc = $mosConfig_live_site."/images/eventlist/location/".$l_rows[0]->locimage; $thumbloc = $mosConfig_live_site."/images/eventlist/location/small/".$l_rows[0]->locimage; if (file_exists(ELPATH."/../../images/eventlist/location/small/".$l_rows[0]->locimage)) { $iminfoloc = @getimagesize("images/eventlist/location/".$l_rows[0]->locimage); $widthloc = $iminfoloc[0]; $heightloc = $iminfoloc[1]; ?> <a href="javascript:void(window.open('<?php echo $originalloc; ?>','Popup','width=<?php echo $widthloc; ?>,height=<?php echo $heightloc; ?>,location=no,menubar=no,scrollbars=no,status=no, toolbar=no,resizable=no'));"> <img src="<?php echo $thumbloc; ?>" alt="thumb" /></a> <?php } else { ?> <img src="<?php echo $originalloc; ?>" width="<?php echo $imagewidth; ?>" height="<?php echo $imageheight; ?>" alt="orginal" /> <?php } } ?> </td> </ Un saludo a los dos y espero que la peli fuera buena, |
| ||||
Re: problema, necesito anteponer nºs aleatorios delante del archivo a subir Excelente peli "Radio Corazon" aca en chile :D Una consulta... En el servidor y en la base de datos deja la foto renombrada ?? Pregunto porque me parece que solo lo hace en la base de datos. Trata de accesar a la foto directamente por la ruta (Ej.: w³.tusitio.com/upload/foto.jpg) y postea los resultados aca. Esto quiero chekearlo para identificar cual podria ser el problema. Suerte! |
| |||
Re: problema, necesito anteponer nºs aleatorios delante del archivo a subir aca en españa no tenemos esa peli, pero mañana voy a ver "el orfanato" que esta nominada a los oscar y es Española, bueno te comento, efectivamente no se visualiza la imagen poniendo la ruta en el explorer, pone: Not Found The requested document was not found on this server. -------------------------------------------------------------------------------- Web Server at "mi web" a ver si me das una solucion que estoy desesperado, ¿No habria otra formula para renombrar archivos con otro nombre ? te digo esto porque con $userfile_name=(isset($_FILES['userfile']['name']) ? $_FILES['userfile']['name'] : ""); funciona bien pero al cambiarlo por $userfile_name = date("YmdGis").$_FILES['userfile']['name']; ya NO sube la imagen al servidor Última edición por joaquina5; 10/10/2007 a las 08:46 |
| ||||
Re: problema, necesito anteponer nºs aleatorios delante del archivo a subir Como suponia... lo que pasa es que le agregamos la fecha al dato que se va a guardar en la base de datos pero no a la foto que tu guardas. Por lo tanto vuelve al archivo que guarda la foto y cambia estas dos lineas: Código PHP: Código PHP: Suerte! |
| |||
Re: problema, necesito anteponer nºs aleatorios delante del archivo a subir nada no cambia el nombre del archivo, si existe ese archivo me dice que ya existe y si no esxiste me lo sube perfectamente, es igual que cuando me dijiste lo de base_dir que al final no me cambia el mombre. Alguna sugerencia compañero, aplicate please |
| ||||
Re: problema, necesito anteponer nºs aleatorios delante del archivo a subir Ok... vamos a ver que otra posibilidad tenemos. Agregale a tu pagina esta linea antes de todo: Código PHP: |
| |||
Re: problema, necesito anteponer nºs aleatorios delante del archivo a subir YA ESTA LO CONSEGUIMOS!!!! MUCHAS GRACIAS MARVIN Y @NDREX, LA SOLUCION ERA BIEN SENCILLA UTILIZANDO EL CODIGO DE @ANDREX: Y LA aYUDA Y PISTAS DE MARVIN ERA CUESTION DE insertar date entre $base_Dir.$_FILES y ahora funciona de vicio Gracias a los dos unos crack os estare agradecido siempre Nos Vemos Última edición por joaquina5; 10/10/2007 a las 12:33 |