Foros del Web » Programando para Internet » PHP »

Subir foto, ayuda con el codigo

Estas en el tema de Subir foto, ayuda con el codigo en el foro de PHP en Foros del Web. Hola, tengo el siguiente script, y aunque selecciono el archivo y le doy enviar, no me da ningun fallo ni pagina de confirmacion, la verdad ...
  #1 (permalink)  
Antiguo 02/03/2008, 04:22
 
Fecha de Ingreso: abril-2006
Mensajes: 123
Antigüedad: 18 años
Puntos: 0
Subir foto, ayuda con el codigo

Hola, tengo el siguiente script, y aunque selecciono el archivo y le doy enviar, no me da ningun fallo ni pagina de confirmacion, la verdad no se si lo ha subido y en que lugar del servidor me esta metiendo la foto.
Donde esta guardando las fotos, si las esta subiendo, porque no me da una confirmacion de el "archivo se subio con exito"



<?

if($boton) {
if (is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) {
if($HTTP_POST_FILES['archivo']['size'] < 85000) {
if($HTTP_POST_FILES['archivo']['type']=="image/gif" || $HTTP_POST_FILES['archivo']['type']=="image/jpeg" || $HTTP_POST_FILES['archivo']['type']=="image/pjpeg") {
copy($HTTP_POST_FILES['archivo']['tmp_name'], $HTTP_POST_FILES['archivo']['name']);
$subio = true;
}
}
}

if($subio) {
echo "El archivo subio con exito";
} else {
echo "El archivo no cumple con las reglas establecidas";
}
die();
}

?>


<body>
<form action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data" name="form1">
<p align="center">Archivo
<input name="archivo" type="file" id="archivo">(Solo formato GIF Y JPG menores a 80K)
</p>
<p align="center"><input name="boton" type="submit" id="boton" value="Enviar"></p>
</form>

</body>
</html>
  #2 (permalink)  
Antiguo 02/03/2008, 04:54
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Subir foto, ayuda con el codigo

te dejo este codigo que funciona, lo que hace essubir archivos a u8na carpeta previamente creada por ti en el web, carpeta a la que habras dado permisos de escritura en el hosting o en c: si trabajas en local, y despues guarda los datos del archivo mas su ruta a una base de datos que has de configurar, borra la parte de la insercion en la base de datos y deja solo la parte de subir archivos, el codigo funciona bien



Código PHP:

<?php 
if (isset($_POST['submit'])) {  
    if(
is_uploaded_file($_FILES['fichero']['tmp_name'])) {
    
    
     
// me verifica haya sido cargado el archivo 
        
$ruta_destino "../cevit/archivos/";
        if(
move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta_destino $_FILES['fichero']['name'])) { // se coloca en su lugar final 
                    
echo "<b>Upload exitoso!. Datos:</b><br>"
            echo 
"Nombre: <i><a href=\"".$ruta_destino $_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>"
            echo 
"Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>"
                    echo 
"Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>"
                        echo 
"<br><hr><br>"
                        

// Aqui es donde tendre se insertan en la BD la variable $_FILES['fichero']['name']



mysql_connect('localhost','user,'9999')or die ('Ha fallado la conexión'.mysql_error());
mysql_select_db('
registro')or die ('Error al seleccionar la Base de Datos'.mysql_error());


 
 
 
 $nombre_archivo  = $_POST["nombre_archivo"];
 $description  = $_POST["description"];


$query = "INSERT INTO archivos 
    VALUES (0,'
$nombre_archivo','$description' , '".$_FILES['fichero']['name']."','".$_FILES['fichero']['type']."', '".$_FILES['fichero']['size']."')";

                mysql_query($query) or die(mysql_error());
                echo "El archivo '".$nombre_archivo."' ha sido registrado de manera satisfactoria.<br />";
                
    


                     
        } 
    } 
 
// A continuación el formulario 
}
?>
<body>
<form action="<?php echo $_SERVER['
PHP_SELF?>" method="post" enctype="multipart/form-data"> 
    Archivo: <input name="fichero" type="file" size="150" maxlength="150"> 
    <br> Nombre: <input name="nombre_archivo" type="text" size="70" maxlength="70">
    <br> Descripcion: <input name="description" type="text" size="100" maxlength="250">
    <br>
  <input name="submit" type="submit" value="Upload!">  
</form> </body>
  #3 (permalink)  
Antiguo 02/03/2008, 12:55
 
Fecha de Ingreso: abril-2006
Mensajes: 123
Antigüedad: 18 años
Puntos: 0
Re: Subir foto, ayuda con el codigo

ok, he puesto el codigo que me indicas, pero no se que pasa con uno que ya tenia que no va, me estoy haciendo la picha un lio.

alguna ayuda ?

que esta mal:

<?php

if ($timegen) {
$timenow=gettimeofday();
$gen=$timegen["sec"]+($timegen["usec"]/1000000);
$now=$timenow["sec"]+($timenow["usec"]/1000000);
$page_generation_time = substr(($now-$gen),0,5);
}

if ($config['debug_mode'] >= 3) {


$debug_buffer = $error_handler->getDebugBuffer();
if ($debug_buffer) {

// Text here is not translated as this is normally used only by developers - popup only when there is content
echo '<div id="debugbox"><a href="javascript:switch_display(\'debugmsgs\')">&r aquo; See DEBUG info</a>';
echo '<div id="debugmsgs" style="display: none">';

foreach($debug_buffer as $value) {
$error_handler->displayError($value['errsev'], $value['errstr'], $value['errfile'], $value['errline']);
}

echo '</div><!--//debugmsgs--></div><!--//debugbox-->';

}

}

?>
<div id="footer" class="small"> Ranking de Mascotas <a href="http://www.tupeluqueriacanina.com/"> Tu Peluqueria Canina - www.tupeluqueriacanina.com - [email protected] </a>


if ($timegen) {
echo ' - Página generada en '.$page_generation_time.'s.';
}

?>
</div><!--//footer-->
</div>



<?php
if (isset($_POST['submit'])) {
if(is_uploaded_file($_FILES['fichero']['tmp_name'])) {


// me verifica haya sido cargado el archivo
$ruta_destino = "../cevit/archivos/";
if(move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta_destino . $_FILES['fichero']['name'])) { // se coloca en su lugar final
echo "<b>Upload exitoso!. Datos:</b><br>";
echo "Nombre: <i><a href=\"".$ruta_destino . $_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>";
echo "Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>";
echo "Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>";
echo "<br><hr><br>";


// Aqui es donde tendre se insertan en la BD la variable $_FILES['fichero']['name']

$nombre_archivo = $_POST["nombre_archivo"];
$description = $_POST["description"];


$query = "INSERT INTO archivos
VALUES (0,'$nombre_archivo','$description' , '".$_FILES['fichero']['name']."','".$_FILES['fichero']['type']."', '".$_FILES['fichero']['size']."')";

mysql_query($query) or die(mysql_error());
echo "El archivo '".$nombre_archivo."' ha sido registrado de manera satisfactoria.<br />";





}
}

// A continuación el formulario
}
?>
<body>
<form action="<?php echo $_SERVER['PHP_SELF] ?>" method="post" enctype="multipart/form-data">
Archivo: <input name="fichero" type="file" size="150" maxlength="150">
<br> Nombre: <input name="nombre_archivo" type="text" size="70" maxlength="70">
<br> Descripcion: <input name="description" type="text" size="100" maxlength="250">
<br>
<input name="submit" type="submit" value="Upload!">
</form> </body>






</body>
</html>
  #4 (permalink)  
Antiguo 02/03/2008, 13:08
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Subir foto, ayuda con el codigo

lo primero que veo es que has puesto las mismas carpetas que yo:

Código PHP:
// me verifica haya sido cargado el archivo 
$ruta_destino "../cevit/archivos/"
..cevit/archivos

pon las tuyas, carpeta que has de crear tu manualmente en el server y desde el hosting darle a las carpetas permisos de ercritura.

tienes los permisos?
y pon las carpetas que tu tengas.
y de que tamaño son los archivos que quieres subir?
Has cambiado los parametros del php.ini? en el server?
  #5 (permalink)  
Antiguo 02/03/2008, 15:17
 
Fecha de Ingreso: abril-2006
Mensajes: 123
Antigüedad: 18 años
Puntos: 0
Re: Subir foto, ayuda con el codigo

Cita:
Iniciado por jaronu Ver Mensaje
lo primero que veo es que has puesto las mismas carpetas que yo:

Código PHP:
// me verifica haya sido cargado el archivo 
$ruta_destino "../cevit/archivos/"
..cevit/archivos

pon las tuyas, carpeta que has de crear tu manualmente en el server y desde el hosting darle a las carpetas permisos de ercritura.

tienes los permisos?
y pon las carpetas que tu tengas.
y de que tamaño son los archivos que quieres subir?
Has cambiado los parametros del php.ini? en el server?
En la web me da este fallo:

Warning: Unexpected character in input: ''' (ASCII=39) state=1 in /home/s031c6eb/public_html/tupeluqueriacanina/mascotas/themes/default/footer.inc.php on line 82
Ranking de Mascotas Tu Peluqueria Canina - www.tupeluqueriacanina.com - [email protected] if ($timegen) { echo ' - Página
  #6 (permalink)  
Antiguo 02/03/2008, 15:34
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Subir foto, ayuda con el codigo

<body>
<form action="<?php echo $_SERVER['PHP_SELF] ?>" method="post" enctype="multipart/form-data">
Archivo: <input name="fichero" type="file" size="150" maxlength="150">
<br> Nombre: <input name="nombre_archivo" type="text" size="70" maxlength="70">
<br> Descripcion: <input name="description" type="text" size="100" maxlength="250">
<br>
<input name="submit" type="submit" value="Upload!">
</form> </body>



aqui te faltan una comillas simples

<form action="<?php echo $_SERVER['PHP_SELF] ?>" method="post"

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"

revisa el codigo, no parece estar mal
menos eso de las comillas
  #7 (permalink)  
Antiguo 02/03/2008, 15:40
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Subir foto, ayuda con el codigo

y cuando copies y pegues un error, escribe tambien lalinea ala que se refiere el error
Gracias.
  #8 (permalink)  
Antiguo 03/03/2008, 03:09
 
Fecha de Ingreso: abril-2006
Mensajes: 123
Antigüedad: 18 años
Puntos: 0
Re: Subir foto, ayuda con el codigo

Cita:
Iniciado por jaronu Ver Mensaje
y cuando copies y pegues un error, escribe tambien lalinea ala que se refiere el error
Gracias.
sigue sin funcionar, este es el codigo y parece que esta bien, pero no envia nada ni confirma su envio, el formulario de envio esta aqui: http://www.tupeluqueriacanina.com/mascotas/index.php

<?php

if ($timegen) {
$timenow=gettimeofday();
$gen=$timegen["sec"]+($timegen["usec"]/1000000);
$now=$timenow["sec"]+($timenow["usec"]/1000000);
$page_generation_time = substr(($now-$gen),0,5);
}

if ($config['debug_mode'] >= 3) {


$debug_buffer = $error_handler->getDebugBuffer();
if ($debug_buffer) {

// Text here is not translated as this is normally used only by developers - popup only when there is content
echo '<div id="debugbox"><a href="javascript:switch_display(\'debugmsgs\')">&r aquo; See DEBUG info</a>';
echo '<div id="debugmsgs" style="display: none">';

foreach($debug_buffer as $value) {
$error_handler->displayError($value['errsev'], $value['errstr'], $value['errfile'], $value['errline']);
}

echo '</div><!--//debugmsgs--></div><!--//debugbox-->';

}

}

?>

<div id="footer" class="small"> Ranking de Mascotas <a href="http://www.tupeluqueriacanina.com/"> Tu Peluqueria Canina - www.tupeluqueriacanina.com - [email protected] </a>

<?php

if ($timegen) {
echo ' - Página generada en '.$page_generation_time.' s.';
}

?>





<?php
if (isset($_POST['submit'])) {
if(is_uploaded_file($_FILES['fichero']['tmp_name'])) {


// me verifica haya sido cargado el archivo
$ruta_destino = ".../tupeluqueriacanina/Envios/";
if(move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta_destino . $_FILES['fichero']['name'])) { // se coloca en su lugar final
echo "<b>Upload exitoso!. Datos:</b><br>";
echo "Nombre: <i><a href=\"".$ruta_destino . $_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>";
echo "Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>";
echo "Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>";
echo "<br><hr><br>";


// Aqui es donde tendre se insertan en la BD la variable $_FILES['fichero']['name']

$nombre_archivo = $_POST["nombre_archivo"];
$description = $_POST["description"];


$query = "INSERT INTO archivos
VALUES (0,'$nombre_archivo','$description' , '".$_FILES['fichero']['name']."','".$_FILES['fichero']['type']."', '".$_FILES['fichero']['size']."')";

mysql_query($query) or die(mysql_error());
echo "El archivo '".$nombre_archivo."' ha sido registrado de manera satisfactoria.<br />";





}
}

// A continuación el formulario
}
?>

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data">
Archivo: <input name="fichero" type="file" size="60" maxlength="150">
<br> Nombre: <input name="nombre_archivo" type="text" size="60" maxlength="70">
<br> Descripcion: <input name="description" type="text" size="50" maxlength="250">
<br>
<input name="submit" type="submit" value="Enviar!">
</form>






</body>
</html>
  #9 (permalink)  
Antiguo 03/03/2008, 03:17
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Subir foto, ayuda con el codigo

te imprima en pantalla el tiempo generadp por el script o eso tampoco?

if ($timegen) {
echo ' - Página generada en '.$page_generation_time.' s.';
  #10 (permalink)  
Antiguo 03/03/2008, 03:26
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Subir foto, ayuda con el codigo

y la tabla de la base MySQL Ha de ser asi:

CREATE TABLE `archivos` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(120) NOT NULL,
`description` varchar(250) NOT NULL,
`ruta` varchar(100) NOT NULL,
`tipo` varchar(50) NOT NULL,
`size` int(50) NOT NULL,
PRIMARY KEY (`id`)


tienes las carpetas del server que usas para guardar los archivos con permisos de escritura?
Has preguntado al hosting si tienes configurado el php para subir archivos?
por que si no, solo te dejara subir archivos muy pequeños.
  #11 (permalink)  
Antiguo 03/03/2008, 03:38
 
Fecha de Ingreso: abril-2006
Mensajes: 123
Antigüedad: 18 años
Puntos: 0
Re: Subir foto, ayuda con el codigo

Cita:
Iniciado por jaronu Ver Mensaje
y la tabla de la base MySQL Ha de ser asi:

CREATE TABLE `archivos` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(120) NOT NULL,
`description` varchar(250) NOT NULL,
`ruta` varchar(100) NOT NULL,
`tipo` varchar(50) NOT NULL,
`size` int(50) NOT NULL,
PRIMARY KEY (`id`)


tienes las carpetas del server que usas para guardar los archivos con permisos de escritura?
Has preguntado al hosting si tienes configurado el php para subir archivos?
por que si no, solo te dejara subir archivos muy pequeños.
Lo estoy haciendo sin crear base de datos, solo quiero que envien fotos al servidor directamente, despues yo las miro y ya me encargo de publicarlas.
Ante la gente me las mandaba de sus email al mio, y ponian el nombre del perro y del lugar que era, ahora queria hacerlo de una manera mas automatica.

Lo del servidor no lo he preguntado, pero creo que no habra problemas, siempre en subido cosas sin proble, lo preguntare de todas formas.

He probado a subir imagenes de 12k y tampoco va, ni siquiera me da un mensaje de fallo.
La carpeta la cree con permiso 777, y es una carpeta llamada envios, la ruta es:
/public_html/tupeluqueriacanina/Envios/

igual estoy indicando la ruta mal .., el formulario esta en:
/public_html/tupeluqueriacanina/mascotas/themes/default/
  #12 (permalink)  
Antiguo 03/03/2008, 06:01
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Subir foto, ayuda con el codigo

prueba solo con este codigo, solo con este, no incluyas nada



Código PHP:
<?php 
if (isset($_POST['submit'])) { 
if(
is_uploaded_file($_FILES['fichero']['tmp_name'])) { 


// me verifica haya sido cargado el archivo 
$ruta_destino ".../tupeluqueriacanina/Envios/"
if(
move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta_destino $_FILES['fichero']['name'])) { // se coloca en su lugar final 
echo "<b>Upload exitoso!. Datos:</b><br>"
echo 
"Nombre: <i><a href=\"".$ruta_destino $_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>"
echo 
"Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>"
echo 
"Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>"
echo 
"<br><hr><br>"






// A continuación el formulario 

?> 

<form action="<?php echo $_SERVER['PHP_SELF'?>" method="post" enctype="multipart/form-data"> 
Archivo: <input name="fichero" type="file" size="60" maxlength="150"> 
<br> Nombre: <input name="nombre_archivo" type="text" size="60" maxlength="70"> 
<br> Descripcion: <input name="description" type="text" size="50" maxlength="250"> 
<br> 
<input name="submit" type="submit" value="Enviar!"> 
</form> 


?>
  #13 (permalink)  
Antiguo 03/03/2008, 07:29
 
Fecha de Ingreso: abril-2006
Mensajes: 123
Antigüedad: 18 años
Puntos: 0
Re: Subir foto, ayuda con el codigo

Cita:
Iniciado por jaronu Ver Mensaje
prueba solo con este codigo, solo con este, no incluyas nada



Código PHP:
<?php 
if (isset($_POST['submit'])) { 
if(
is_uploaded_file($_FILES['fichero']['tmp_name'])) { 


// me verifica haya sido cargado el archivo 
$ruta_destino ".../tupeluqueriacanina/Envios/"
if(
move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta_destino $_FILES['fichero']['name'])) { // se coloca en su lugar final 
echo "<b>Upload exitoso!. Datos:</b><br>"
echo 
"Nombre: <i><a href=\"".$ruta_destino $_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>"
echo 
"Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>"
echo 
"Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>"
echo 
"<br><hr><br>"






// A continuación el formulario 

?> 

<form action="<?php echo $_SERVER['PHP_SELF'?>" method="post" enctype="multipart/form-data"> 
Archivo: <input name="fichero" type="file" size="60" maxlength="150"> 
<br> Nombre: <input name="nombre_archivo" type="text" size="60" maxlength="70"> 
<br> Descripcion: <input name="description" type="text" size="50" maxlength="250"> 
<br> 
<input name="submit" type="submit" value="Enviar!"> 
</form> 


?>


Hola, con solamente ese codigo y subiendo una fto de 92 k., me da el siguiente fallo:



Warning: move_uploaded_file(.../tupeluqueriacanina/Envios/Cuba 037.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/s031c6eb/public_html/tupeluqueriacanina/subir.php on line 8

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php07EOvt' to '.../tupeluqueriacanina/Envios/Cuba 037.jpg' in /home/s031c6eb/public_html/tupeluqueriacanina/subir.php on line 8

Archivo:
Nombre:
Descripcion:

?>
  #14 (permalink)  
Antiguo 03/03/2008, 09:12
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
Re: Subir foto, ayuda con el codigo

Ese error te sale, porque la ruta a donde quieres copiar la imagen no existe o no tiene los permisos necesarios para subir la imagen.

Verifica esos errores.

Saludos.
  #15 (permalink)  
Antiguo 03/03/2008, 17:04
 
Fecha de Ingreso: abril-2006
Mensajes: 123
Antigüedad: 18 años
Puntos: 0
Re: Subir foto, ayuda con el codigo

Cita:
Iniciado por GatorV Ver Mensaje
Ese error te sale, porque la ruta a donde quieres copiar la imagen no existe o no tiene los permisos necesarios para subir la imagen.

Verifica esos errores.

Saludos.
Oues no se, el directorio existe y los permisos estan bien...

http://www.tupeluqueriacanina.com/Envios/subir.php
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 14:34.