Foros del Web » Programando para Internet » PHP »

Subir imagen a servidor por php

Estas en el tema de Subir imagen a servidor por php en el foro de PHP en Foros del Web. Saludos, soy nuevo en este foro, espero que este tema vaya aqui, sino moverlo a donde sea necesario. El problema que tengo es que no ...
  #1 (permalink)  
Antiguo 13/07/2009, 11:38
 
Fecha de Ingreso: julio-2009
Mensajes: 52
Antigüedad: 14 años, 9 meses
Puntos: 4
Subir imagen a servidor por php

Saludos, soy nuevo en este foro, espero que este tema vaya aqui, sino moverlo a donde sea necesario.

El problema que tengo es que no puedo guardar imagenes en mi servidor, tengo el codigo que en localhost funciona correctamente pero al momento de ponerlo en el servidor no funciona, quiciera que alguien me ayudara en esta, ya que tengo una semana intentandolo y no lo he logrado.

La carpeta se encuentra con permiso de 777, guarda la informacion en la bd pero no guarda la imagen en el servidor.

dejo el codigo

Código HTML:
<div id="fondo">
  <br />
  <h4> ADMINISTRADOR DEL CATALOGO </H4>
    <div id="parrafo1">
    <table cellspacing='10' cellpadding='10'>
    <form method="post" action="guardar.php" enctype="multipart/form-data">
    <tr>
      <td align='left' height='30' style='background:#cccccc'>Nombre imagen:</td>
      <td align='left'><input type="text" name="nombre_imagen" size='90'maxlength="15"></td>
    </tr>
    <tr>
      <td align='left' height='30' style='background:#cccccc'>Imagen:</td>
      <td align='left'><input type="file" name="foto" size="75"></td>
    </tr>
    <tr>
      <td align='left' height='30' style='background:#cccccc'>Precio:</td>
      <td align='left'><input type="text" name="precio" size='90' maxlength="10"></td>
    </tr>
    <tr>
      <td align='left' height='30' style='background:#cccccc'>Descripción:</td>
      <td align='left'><input type="text" name="descripcion" size='90' maxlength="100"></td>
    </tr>
    <tr>
      <td align='left' height='30' style='background:#cccccc'>Tabla:</td>
      <td align='left'><select name="tabla" size="1">
                       <option value="n">Equipo médico -> Nuevo</option>
                       <option value="r">Equipo médico -> Ramanofacturado</option>
                       <option value="o">Accesorio -> Original</option>
                       <option value="g">Accesorio -> Generico</option>
                       </select>
    </tr>
    <tr>
        <td> <input type="submit" name="submit" value="Aceptar"></td>
    </tr>
    </form>
    </table>
</div>
</div> 
y este es el php

Código PHP:
<?php
$nombre_imagen 
$_POST['nombre_imagen'];
$precio $_POST['precio'];
$descripcion $_POST['descripcion'];
$tabla $_POST['tabla'];
$nombre_nuevo $nombre_imagen.'.jpg';
$nombre_viejo $_FILES['foto']['name'];
$imagen='httpdocs/catalogo'.$_FILES['foto']['name'];
$foto_tmp $_FILES['foto']['tmp_name'];

if(
is_uploaded_file($foto_tmp)){
  
move_uploaded_file($foto_tmp,$imagen);
  
rename('httpdocs/catalogo/$nombre_viejo','httpdocs/catalogo/$nombre_nuevo');
} else {
  echo 
"ERROR";
}

$ruta 'httpdocs/catalogo/';
echo 
"el archivo se a subido correctamente al servidor <br>";

if(
$tabla == 'n') {
  
$tabla 'e_medico_nuevo';
}
if(
$tabla == 'r') {
  
$tabla 'e_medico_remano';
}
if(
$tabla == 'o') {
  
$tabla 'acce_original';
}
if(
$tabla == 'g') {
  
$tabla 'acce_generico';
}

include (
"lib_funciones.php");

$sql "INSERT INTO $tabla (id, foto, nombre_imagen, descripcion, precio) VALUES (0, '$ruta', '$nombre_imagen', '$descripcion', '$precio')";
$res mysql_query($sql);
if(
$res) {
echo 
"datos añadidos a la base de datos con exito";
}
else {
echo 
"Error: no se a podido añadir a la base de datos.";
}
echo 
"<br><br>";
?>
se que este tema se ha mencionado anteriormente, pero he realizado todo lo que he leido y no lo puedo solucionar si alguien me puede ayudar, de antemano gracias las rutas las he puesto relativas y absolutas y nada.
  #2 (permalink)  
Antiguo 13/07/2009, 11:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Subir imagen a servidor por php

¿y no te arroja siquiera un error??

pon esto al comienzo de tu código PHP

Código PHP:
error_reporting(E_ALL);
ini_set('display_errors'1); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/07/2009, 12:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Subir imagen a servidor por php

Tema trasladado desde PHP Orientado a Objetos
  #4 (permalink)  
Antiguo 13/07/2009, 13:53
 
Fecha de Ingreso: julio-2009
Mensajes: 52
Antigüedad: 14 años, 9 meses
Puntos: 4
Respuesta: Subir imagen a servidor por php

Gracias por responder pateketrueke , me marco los siguientes warning

Warning: move_uploaded_file(httpdocs/catalogoc_roddy.gif) [function.move-uploaded-file]: failed to open stream: HTTP wrapper does not support writeable connections. in C:\inetpub\vhosts\biomedicalsystems.com.mx\httpdoc s\guardar.php on line 14

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Windows\Temp\php75C7.tmp' to 'httpdocs/catalogoc_roddy.gif' in C:\inetpub\vhosts\biomedicalsystems.com.mx\httpdoc s\guardar.php on line 14

Warning: rename(httpdocs/catalogo/$nombre_viejo,httpdocs/catalogo/$nombre_nuevo) [function.rename]: Invalid argument in C:\inetpub\vhosts\biomedicalsystems.com.mx\httpdoc s\guardar.php on line 15

Última edición por franjalafa; 13/07/2009 a las 13:56 Razón: Espero que esta respuesta este en el tema trasladado correctamente.
  #5 (permalink)  
Antiguo 13/07/2009, 13:57
Avatar de SCY-FOX  
Fecha de Ingreso: septiembre-2007
Ubicación: Chile
Mensajes: 139
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: Subir imagen a servidor por php

Código:
<?php
$nombre_imagen = $_POST['nombre_imagen'];
$precio = $_POST['precio'];
$descripcion = $_POST['descripcion'];
$tabla = $_POST['tabla'];
$nombre_nuevo = $nombre_imagen.'.jpg';
$nombre_viejo = $_FILES['foto']['name'];
$imagen='catalogo'.$_FILES['foto']['name'];
$foto_tmp = $_FILES['foto']['tmp_name'];

if(is_uploaded_file($foto_tmp)){
  move_uploaded_file($foto_tmp,$imagen);
  rename(catalogo/$nombre_viejo','catalogo/$nombre_nuevo');
} else {
  echo "ERROR";
}

$ruta = catalogo/';
echo "el archivo se a subido correctamente al servidor <br>";

if($tabla == 'n') {
  $tabla = 'e_medico_nuevo';
}
if($tabla == 'r') {
  $tabla = 'e_medico_remano';
}
if($tabla == 'o') {
  $tabla = 'acce_original';
}
if($tabla == 'g') {
  $tabla = 'acce_generico';
}

include ("lib_funciones.php");

$sql = "INSERT INTO $tabla (id, foto, nombre_imagen, descripcion, precio) VALUES (0, '$ruta', '$nombre_imagen', '$descripcion', '$precio')";
$res = mysql_query($sql);
if($res) {
echo "datos añadidos a la base de datos con exito";
}
else {
echo "Error: no se a podido añadir a la base de datos.";
}
echo "<br><br>";
?>
Prueba eso y cuentanos que pasa.

Me tinca que no encuentra o no puede usar la carpeta httpdocs porque en remoto esa carpeta no existe...
  #6 (permalink)  
Antiguo 13/07/2009, 14:57
 
Fecha de Ingreso: julio-2009
Mensajes: 52
Antigüedad: 14 años, 9 meses
Puntos: 4
Respuesta: Subir imagen a servidor por php

Gracias SCY-FOR por la respuesta, me marca los siguiente:

Warning: move_uploaded_file(catalogo/logo moz.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in C:\inetpub\vhosts\biomedicalsystems.com.mx\httpdoc s\guardar.php on line 14

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Windows\Temp\phpAB1A.tmp' to 'catalogo/logo moz.jpg' in C:\inetpub\vhosts\biomedicalsystems.com.mx\httpdoc s\guardar.php on line 14

que según lo que he leido, es un error de permisos, pero segun mi proveedor de hospedaje tengo en 777 la carpeta catalogo, pero al revisarlo yo por medio de filezilla me aparece en xxx los permisos de esa carpeta y no lo puedo dejar en 777
  #7 (permalink)  
Antiguo 14/07/2009, 09:31
 
Fecha de Ingreso: julio-2009
Mensajes: 52
Antigüedad: 14 años, 9 meses
Puntos: 4
Respuesta: Subir imagen a servidor por php

Gracias por su ayuda e interes en apoyarme, resulto que mi proveedor me decia que si tenia permisos, pero al mostrarle el error que me marcaba, siempre me decia que era otra cosa, pero si resulto ser permisos en la carpeta. Gracias y damos por terminado el tema, problema del servidor.
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 08:30.