Foros del Web » Programando para Internet » PHP »

Formulario que envie texto y suba una imagen al ftp ¿posible?

Estas en el tema de Formulario que envie texto y suba una imagen al ftp ¿posible? en el foro de PHP en Foros del Web. Hola amigos, Tengo una duda. Estoy haciendo un pequeño sistema de mensajes en el que los usuarios escriben un mensaje y dejan su nick en ...
  #1 (permalink)  
Antiguo 14/11/2006, 14:16
 
Fecha de Ingreso: octubre-2003
Ubicación: Santander
Mensajes: 236
Antigüedad: 20 años, 6 meses
Puntos: 0
Formulario que envie texto y suba una imagen al ftp ¿posible?

Hola amigos,

Tengo una duda. Estoy haciendo un pequeño sistema de mensajes en el que los usuarios escriben un mensaje y dejan su nick en unas cajas de texto, todo se envía por formulario y mediante PHP dichos textos se insertan en una base de datos MySQL.

Mi duda es: ¿Es posible añadir a dicho formulario la funcionalidad de que el usuario envíe una imagen desde su disco duro, dicha imagen se almacene en un directorio determinado de mi servidor y finalmente el nombre de dicha imagen se almacene en un campo de la base de datos junto al nombre y el texto que dicho usuario envió?

Llevo dos días con ello pero estoy completamente atascado...

Dedse ya, muchas gracias por vuestra ayuda :)
  #2 (permalink)  
Antiguo 15/11/2006, 05:51
 
Fecha de Ingreso: octubre-2003
Ubicación: Santander
Mensajes: 236
Antigüedad: 20 años, 6 meses
Puntos: 0
Encontré esto para iniciar el tema (luego veré como lo ingreso en la base de datos. Pero cuando sube el fichero al ftp, y trato de mover o visualizar dicho fichero subido, el servidor ftp me da error 550 (como si no existiera realmente el fichero en el servidor). Es extraño porque vía navegador, sí que veo la imagen que subo (poniendo la url en el firefox, por ejemplo), pero como digo, en el servidor ftp no me deja ni verla ni editarla ni bajarmela a mi ordenador. ¿Por qué puede ser esto?.

Form.html
Código:
<form action="subearchivo.php" method="post" enctype="multipart/form-data">
    <b>Campo de tipo texto:</b>
    <br>
    <input type="text" name="cadenatexto" size="20" maxlength="100">
    <input type="hidden" name="MAX_FILE_SIZE" value="100000">
    <br>
    <br>
    <b>Enviar un nuevo archivo: </b>
    <br>
    <input name="userfile" type="file">
    <br>
    <input type="submit" value="Enviar">
</form>


subearchivo.php
Código PHP:
<?
//tomo el valor de un elemento de tipo texto del formulario
$cadenatexto $_POST["cadenatexto"];
echo 
"Escribió en el campo de texto: " $cadenatexto "<br><br>";

//datos del arhivo
$nombre_archivo $HTTP_POST_FILES['userfile']['name'];
$tipo_archivo $HTTP_POST_FILES['userfile']['type'];
$tamano_archivo $HTTP_POST_FILES['userfile']['size'];
//compruebo si las características del archivo son las que deseo
if (!((strpos($tipo_archivo"gif") || strpos($tipo_archivo"jpeg")) && ($tamano_archivo 100000))) {
    echo 
"La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 100 Kb máximo.</td></tr></table>";
}else{
    if (
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $nombre_archivo)){
       echo 
"El archivo ha sido cargado correctamente.";
    }else{
       echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse.";
    }
}
?>
  #3 (permalink)  
Antiguo 15/11/2006, 06:11
 
Fecha de Ingreso: octubre-2003
Ubicación: Santander
Mensajes: 236
Antigüedad: 20 años, 6 meses
Puntos: 0
Y añado. Me pasa lo mismo que con el script e arriba con este otro ejemplo que encontré:

Formulario
Código:
<FORM action="subearchivo.php"  method="post" enctype="multipart/form-data">
<input name="imagen" type="file" id="imagen2">
<INPUT TYPE=SUBMIT NAME="Submit" id="Submit" Value="Enviar">
</form>
Script
Código PHP:
<?
$img 
$HTTP_POST_FILES['imagen']['name'];

move_uploaded_file($HTTP_POST_FILES['imagen']['tmp_name'], "".$img);
?>
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 07:52.