Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Cambiar Archivos con php

Estas en el tema de Cambiar Archivos con php en el foro de PHP en Foros del Web. Hola, tengo una pregunta. Yo tengo en mi página web un "slide", que pasa 5 imágenes (img1, img, img3 img4 img5). Estas imagenes están dentro ...
  #1 (permalink)  
Antiguo 16/12/2014, 10:57
 
Fecha de Ingreso: diciembre-2014
Mensajes: 24
Antigüedad: 9 años, 11 meses
Puntos: 0
Cambiar Archivos con php

Hola, tengo una pregunta.

Yo tengo en mi página web un "slide", que pasa 5 imágenes (img1, img, img3 img4 img5).

Estas imagenes están dentro de una carpeta(en la raiz) que se llama "imgs".

Lo que quiero saber es si existe y como se hace, algún tipo de función que yo pueda "sustituir" las imagenes que van pasando... o sea, quiero tener desde la web un "panel de control" que elija un archivo.jpg y reemplace a img1 o img2...

Me dijeron que lo tengo que hacer con mysql, pero no le puedo dar con la tecla.

Saludos.

aquí el código del Slide.

Cita:
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="estslide.css">
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/cycle.js"></script>

<script type="text/javascript">

$(document).ready(function() {
$('.slideshow').cycle({
fx: 'scrollRight'
})


});
</script>
</head>
<body>

<div class="slideshow">
<img src="img/img1.jpg">
<img src="img/img2.jpg">
<img src="img/img3.jpg">
<img src="img/img4.jpg">
<img src="img/img5.jpg">
</div>

</body>
</html>
  #2 (permalink)  
Antiguo 16/12/2014, 12:32
Avatar de herzbazi  
Fecha de Ingreso: febrero-2012
Mensajes: 612
Antigüedad: 12 años, 8 meses
Puntos: 36
Respuesta: Cambiar Archivos con php

primero que nada una tabla mysql con los campos

Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `imagen` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `nombre_img` varchar(256) NOT NULL,
  4.   `ruta_img` text NOT NULL,
  5.   PRIMARY KEY (`id`)

luego un formulario

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="en">
  3.     <meta charset="UTF-8">
  4.     <title>formulario subir imagenes a carpeta y guardar su ruta en mysql</title>
  5. </head>
  6.     <form  method="POST" action="" enctype="multipart/form-data" class="c-form">
  7.         <input type="text" name="nombre_img">
  8.         <input type="file" value="fo" name="ruta_img" >                      
  9.         <input type="hidden" value="ok" name="oculto" /> <br><br>
  10.         <input type="submit" value="grabar"/>
  11.     </form>
  12. </body>
  13. </html>

luego el php

Código PHP:
Ver original
  1. <?php
  2.  
  3. $conexion=mysql_connect("localhost","usuario","contraseña");
  4. mysql_query("SET NAMES 'utf8'");
  5. mysql_select_db("base de datos");
  6.  
  7.  
  8. if($_post['nombre_img']!=''){
  9.     $nombreImagen = $_post['nombre_img'];
  10.     $foto =$_FILES["ruta_img"]['tmp_name'];
  11.     $foto_formato=$_FILES['ruta_img']['type'];
  12.         if($foto !=''){
  13.             $formato = "";
  14.             switch ($foto_formato){
  15.                 case 'image/jpeg':
  16.                 $formato=".jpg";
  17.                 break;
  18.                 case 'image/png':
  19.                 $formato=".png";
  20.                 break;
  21.             }
  22.             $nombre='carpetaDondeGuardasLaImagene/nombredeimagen'.mt_rand(0,1000).$formato;
  23.             copy($foto,$nombre);
  24.             mysql_query("INSERT INTO imagen (nombre_img,ruta_img)
  25.            VALUES('".$nombreImagen."','".$nombre."')");
  26.         }
  27. }
  28.  
  29. ?>

$nombre= ahi tiene que ir la ruta donde guardas las imagenes

hasta ahí es subir imagenes al servidor
__________________________________________________ ______

hasta ahi por ahora .. hacelo y si te falla me cuentas y con gusto lo reviso ...

cuando tengas eso ... vamos por la segunda parte que sera eliminar y editar...
__________________
Enseña todo lo que sepas...
Aprende todo lo que puedas..
  #3 (permalink)  
Antiguo 16/12/2014, 13:21
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: Cambiar Archivos con php

Si el numero de imagenes es fijo, es decir, siempre seran 5 en formato jpg (u otro) el tema es mucho mucho mas simple. solo necesitas un formulario para subir las imagenes y 10 lineas de php para procesarlo, no hace falta una base de datos.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #4 (permalink)  
Antiguo 17/12/2014, 07:07
 
Fecha de Ingreso: diciembre-2014
Mensajes: 24
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Cambiar Archivos con php

Cita:
Iniciado por herzbazi Ver Mensaje
primero que nada una tabla mysql con los campos

Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `imagen` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `nombre_img` varchar(256) NOT NULL,
  4.   `ruta_img` text NOT NULL,
  5.   PRIMARY KEY (`id`)

luego un formulario

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="en">
  3.     <meta charset="UTF-8">
  4.     <title>formulario subir imagenes a carpeta y guardar su ruta en mysql</title>
  5. </head>
  6.     <form  method="POST" action="" enctype="multipart/form-data" class="c-form">
  7.         <input type="text" name="nombre_img">
  8.         <input type="file" value="fo" name="ruta_img" >                      
  9.         <input type="hidden" value="ok" name="oculto" /> <br><br>
  10.         <input type="submit" value="grabar"/>
  11.     </form>
  12. </body>
  13. </html>

luego el php

Código PHP:
Ver original
  1. <?php
  2.  
  3. $conexion=mysql_connect("localhost","usuario","contraseña");
  4. mysql_query("SET NAMES 'utf8'");
  5. mysql_select_db("base de datos");
  6.  
  7.  
  8. if($_post['nombre_img']!=''){
  9.     $nombreImagen = $_post['nombre_img'];
  10.     $foto =$_FILES["ruta_img"]['tmp_name'];
  11.     $foto_formato=$_FILES['ruta_img']['type'];
  12.         if($foto !=''){
  13.             $formato = "";
  14.             switch ($foto_formato){
  15.                 case 'image/jpeg':
  16.                 $formato=".jpg";
  17.                 break;
  18.                 case 'image/png':
  19.                 $formato=".png";
  20.                 break;
  21.             }
  22.             $nombre='carpetaDondeGuardasLaImagene/nombredeimagen'.mt_rand(0,1000).$formato;
  23.             copy($foto,$nombre);
  24.             mysql_query("INSERT INTO imagen (nombre_img,ruta_img)
  25.            VALUES('".$nombreImagen."','".$nombre."')");
  26.         }
  27. }
  28.  
  29. ?>

$nombre= ahi tiene que ir la ruta donde guardas las imagenes

hasta ahí es subir imagenes al servidor
__________________________________________________ ______

hasta ahi por ahora .. hacelo y si te falla me cuentas y con gusto lo reviso ...

cuando tengas eso ... vamos por la segunda parte que sera eliminar y editar...

me salta el siguiente error: Notice: Undefined index: nombre_img in C:\wamp\www\prueba1\prueba.php on line 26

que en el código php que me facilitaste estaría en la linea 9.
  #5 (permalink)  
Antiguo 17/12/2014, 07:08
 
Fecha de Ingreso: diciembre-2014
Mensajes: 24
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Cambiar Archivos con php

Cita:
Iniciado por NSD Ver Mensaje
Si el numero de imagenes es fijo, es decir, siempre seran 5 en formato jpg (u otro) el tema es mucho mucho mas simple. solo necesitas un formulario para subir las imagenes y 10 lineas de php para procesarlo, no hace falta una base de datos.
Si, son solo 5 imágenes. Pero no le encuentro la lógica para hacer el código!! estoy por explotar!
  #6 (permalink)  
Antiguo 17/12/2014, 09:24
Avatar de herzbazi  
Fecha de Ingreso: febrero-2012
Mensajes: 612
Antigüedad: 12 años, 8 meses
Puntos: 36
Respuesta: Cambiar Archivos con php

ponele una @ al principio
__________________
Enseña todo lo que sepas...
Aprende todo lo que puedas..
  #7 (permalink)  
Antiguo 17/12/2014, 09:29
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años, 7 meses
Puntos: 326
Respuesta: Cambiar Archivos con php

Cita:
Iniciado por herzbazi Ver Mensaje
ponele una @ al principio
En vez de poner un isset, poner una @ para suprimir el mensaje... ¬¬

Lo correcto sería hacer esto:
Código PHP:

if(isset($_POST['nombre_img']) && $_POST['nombre_img'] != "") { 
O bien, usar empty()
__________________
>> Eleazan's Source
>> @Eleazan
  #8 (permalink)  
Antiguo 17/12/2014, 11:05
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: Cambiar Archivos con php

Suponiendo que sean solo 5 imágenes que estén una carpeta llamada galeria/imagen_{NRO}.jpg donde {NRO} va de 1 a 5.

Mirando el manual podemos basarnos cómodamente en sus ejemplos.
Prticularmente en este que justamente hace exactamente lo que necesitas.

upload.html
Código HTML:
Ver original
  1. <form action="file-upload.php" method="post" enctype="multipart/form-data">
  2.   Enviar estos archivos:<br />
  3.   <img src="galeria/imagen_1.jpg"><input name="img_galeria[1]" type="file" /><br />
  4.   <img src="galeria/imagen_2.jpg"><input name="img_galeria[2]" type="file" /><br />
  5.   <img src="galeria/imagen_3.jpg"><input name="img_galeria[3]" type="file" /><br />
  6.   <img src="galeria/imagen_4.jpg"><input name="img_galeria[4]" type="file" /><br />
  7.   <img src="galeria/imagen_5.jpg"><input name="img_galeria[5]" type="file" /><br />
  8.   <input type="submit" value="Subir & Actualizar" />
  9. </form>

file-upload.php
Código PHP:
Ver original
  1. <?php
  2. foreach ($_FILES["img_galeria"]["error"] as $nro => $error)
  3.     if ($error == UPLOAD_ERR_OK)
  4.         move_uploaded_file($_FILES["img_galeria"]["tmp_name"][$nro], "/galeria/imagen_$nro.jpg");

No esperes que funcione a la primera, puede que tengas que adaptarlo un poco, pero esa es la idea.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #9 (permalink)  
Antiguo 17/12/2014, 12:46
 
Fecha de Ingreso: diciembre-2014
Mensajes: 24
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Cambiar Archivos con php

Cita:
Iniciado por NSD Ver Mensaje
Suponiendo que sean solo 5 imágenes que estén una carpeta llamada galeria/imagen_{NRO}.jpg donde {NRO} va de 1 a 5.

Mirando [URL="http://php.net/manual/es/features.file-upload.multiple.php"]el manual[/URL] podemos basarnos cómodamente en sus ejemplos.
Prticularmente [URL="http://php.net/manual/es/function.move-uploaded-file.php"]en este[/URL] que justamente hace exactamente lo que necesitas.

upload.html
Código HTML:
Ver original
  1. <form action="file-upload.php" method="post" enctype="multipart/form-data">
  2.   Enviar estos archivos:<br />
  3.   <img src="galeria/imagen_1.jpg"><input name="img_galeria[1]" type="file" /><br />
  4.   <img src="galeria/imagen_2.jpg"><input name="img_galeria[2]" type="file" /><br />
  5.   <img src="galeria/imagen_3.jpg"><input name="img_galeria[3]" type="file" /><br />
  6.   <img src="galeria/imagen_4.jpg"><input name="img_galeria[4]" type="file" /><br />
  7.   <img src="galeria/imagen_5.jpg"><input name="img_galeria[5]" type="file" /><br />
  8.   <input type="submit" value="Subir & Actualizar" />
  9. </form>

file-upload.php
Código PHP:
Ver original
  1. <?php
  2. foreach ($_FILES["img_galeria"]["error"] as $nro => $error)
  3.     if ($error == UPLOAD_ERR_OK)
  4.         move_uploaded_file($_FILES["img_galeria"]["tmp_name"][$nro], "/galeria/imagen_$nro.jpg");

No esperes que funcione a la primera, puede que tengas que adaptarlo un poco, pero esa es la idea.
mirá así lo puse.

html:

Cita:
<link rel="stylesheet" href="uploadcss.css">


<form action="file-upload.php" method="post" enctype="multipart/form-data">
Enviar estos archivos:<br />
<img class="muestra" src="galeria/imagen_1.jpg"><input name="img_galeria[1]" type="file" /><br />
<img class="muestra" src="galeria/imagen_2.jpg"><input name="img_galeria[2]" type="file" /><br />
<img class="muestra" src="galeria/imagen_3.jpg"><input name="img_galeria[3]" type="file" /><br />
<img class="muestra" src="galeria/imagen_4.jpg"><input name="img_galeria[4]" type="file" /><br />
<img class="muestra" src="galeria/imagen_5.jpg"><input name="img_galeria[5]" type="file" /><br />
<input type="submit" value="Subir & Actualizar" />
</form>
PHP:


Cita:
<?php
foreach ($_FILES["img_galeria"]["error"] as $nro => $error)
if ($error == UPLOAD_ERR_OK)
move_uploaded_file($_FILES["img_galeria"]["tmp_name"][$nro],"/galeria/imagen_$nro.jpg");
?>
Me sale un error en la linea 4 del php.

Warning: move_uploaded_file(/galeria/imagen_1.jpg): failed to open stream: No such file or directory in C:\wamp\www\prueba2\file-upload.php on line 4
Call Stack


Soy nuevo en esto. Sé que necesito leer más, pero esto es medio urgente.
  #10 (permalink)  
Antiguo 17/12/2014, 13:07
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: Cambiar Archivos con php

Cita:
Sé que necesito leer más, pero esto es medio urgente.
Lee mas rápido. Si lo que necesitas es que alguien haga tu trabajo urgente, quizás deberías de contratar a alguien. Aqui solo se ofrece ayuda, y se te ha dado bastante.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: css, html, imagenes, mysql, reemplazar
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:31.