Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Diseño web (http://www.forosdelweb.com/f91/)
-   -   Ayuda por favor (http://www.forosdelweb.com/f91/ayuda-por-favor-556414/)

luchozero 12/02/2008 18:06

Ayuda por favor
 
Hola amigos, estoy creado una web donde los usuarios suben sus propias fotos. En este caso he puesto un upload donde el archivo que suban se me vaya automaticamente a una carpeta que yo diga en mi ftp. El caso es que el código es:

if (isset($_POST['submit'])) {
// Pregunto si viene una imagen desde el formulario
if ($_FILES['imagen']['name'] != '') {
// Subo la imagen
$nombre_imagen = $_FILES['imagen']['name'];
$path1 = "NOMBRE DE LA CARPETA".$nombre_imagen;
$tipo_archivo = explode('/',$_FILES['imagen']['type']);
$tamano_imagen = $_FILES['imagen']['size'];

// Pregunto por el formato de imagen valido
if ($tipo_archivo[1] == "gif" || $tipo_archivo[1] == "jpeg" || $tipo_archivo[1] == "jpg" || $tipo_archivo[1] == "pjpeg" || $tipo_archivo[1] == "png") {
// controlo que el tamaño de la imagen no sea mayor a 2 mb
if ($tamano_imagen > 2000000) {
$error ="ATENCION!! No se permiten archivos mayores a 2 MB.";
exit;
}
else {
// Muevo la imagen a la carpeta de destino
$resultado = move_uploaded_file($HTTP_POST_FILES['imagen']['tmp_name'], $path1);
}
else {
$error = "ATENCION!! Ocurrio algun error al subir el fichero. No pudo guardarse.";
exit;
}
}
else {
$error = "No se ha subido ninguna imagen desde el formulario.";
exit;
}
}

// muestro los errores al subir la imagen si los hay
if (isset($error)) {
echo $error;
}


El caso es que no tengo mucha idea y por mucho que lo pongo en una pagina y le pongo extension php no me sale. Me sale lo que podeis ver en esta web http://www.lacasitaporno.com/form.html si subis el archivo solo se ven las letras como podeis ver aqui http://www.lacasitaporno.com/agregar_img.php

Alguien puede ayudarme?

hgp147 12/02/2008 18:09

Re: Ayuda por favor
 
Te falta poner <? al principio y ?> al final del código.

luchozero 12/02/2008 18:22

Re: Ayuda por favor
 
Lo he colocado y ahora ya no me salen las letras. Pero tampoco me manda las fotos a la carpeta imagenes. Creeis que esta bien??

Por cierto, muchas gracias hgp147

luchozero 12/02/2008 18:39

Re: Ayuda por favor
 
Yo es que lo que he hecho es coger ese codigo y ponerlo en una página en blanco tal cual, junto con <? ?> y nada, subo los archivos y me salen en blanco. Me direcciona a esa web pero se me queda todo en blanco :(

hgp147 12/02/2008 18:52

Re: Ayuda por favor
 
Esta bien que quede esa página en blanco (significaría que no se produjo ningún error y por lo tanto el archivo subió sin problemas).
No me quedo muy claro si los archivos logras subirlos. ?

luchozero 12/02/2008 18:53

Re: Ayuda por favor
 
Perdona si no me explique bien. O sea, las fotos que quiera subir los usuarios en el upload no me suben a la carpeta imagenes

hgp147 12/02/2008 19:04

Re: Ayuda por favor
 
Falta un } antes de // muestro los errores al subir la imagen si los hay

luchozero 12/02/2008 19:08

Re: Ayuda por favor
 
Nada, lo he puesto y no consigo que los archivos se suban a la carpeta imagenes. Llevo muchisiimo tiempo detras de esto y no hay manera de que me salga.
Aun así, agradecerte la ayuda hgp147, has sido muy amable :)

hgp147 12/02/2008 19:36

Re: Ayuda por favor
 
La carpeta donde se suben las imágnes tiene permisos CHMOD 755 o 777 ?

Si querés fijate el código que proporciona esta web http://www.desarrolloweb.com/articulos/1307.php


Recien me fije en mi PC y el código da error de sintaxis:
Parse error: syntax error, unexpected T_ELSE in C:\Archivos de programa\VertrigoServ\www\agregar_img.php on line 23

luchozero 12/02/2008 19:50

Re: Ayuda por favor
 
Muchas gracias, jeje sabia que pasaba algo.

Una ultima cosilla, he visto el codigo que me has pasado

<?
//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.";
}
}
?>

Me podrias decir donde tengo que hacer el campio para que las imagenes se guarden en la carpeta del ftp que yo quiera. Por ejemplo las quiero en la carpeta imagenes que ya tengo en CHMOD 777

hgp147 12/02/2008 20:04

Re: Ayuda por favor
 
Modifica esta línea

if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $nombre_archivo)){

Por esta:

if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], "./imagenes/$nombre_archivo")){


Además cambiá todos los $HTTP_POST_FILES por $_FILES

luchozero 12/02/2008 20:22

Re: Ayuda por favor
 
De veras, disculpame nuevamente. Prometo no molestarte más jeje.
Ya he logrado crearlo con este codigo

<?
$status = "";
if ($_POST["action"] == "upload") {
// obtenemos los datos del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
$prefijo = substr(md5(uniqid(rand())),0,6);

if ($archivo != "") {
// guardamos el archivo a la carpeta files
$destino = "files/".$prefijo."_".$archivo;
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
$status = "Archivo subido: <b>".$archivo."</b>";
} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error al subir archivo";
}
}
?>

Este codigo me manda los archivos a la carpeta file, pero como seguridad, puedes decirme y te juro que no te molesto mas :p como puedo poner para que solo puedan enviar archivos jpeg y gif?? Es que quiero que solo puedan enviar fotos y que no vaya el tipico listo a enviarme 1gb y me colapse el servidor?

Siendo ser tan pesado

luchozero 13/02/2008 04:55

Re: Ayuda por favor
 
Hola, he probado el codigo anterior y si me sirve :) pero necesito que en el upload solo se puedan subir archivos en gif y jpeg para que no me puedan subir barbaridades por el servidor y bloquearmelo.

Alguien me puede decir que tengo que poner en el codigo para que solo se acepten archivos en GIF y JPEG

<?
$status = "";
if ($_POST["action"] == "upload") {
// obtenemos los datos del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
$prefijo = substr(md5(uniqid(rand())),0,6);

if ($archivo != "") {
// guardamos el archivo a la carpeta files
$destino = "files/".$prefijo."_".$archivo;
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
$status = "Archivo subido: <b>".$archivo."</b>";
} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error al subir archivo";
}
}
?>

gracias

hades87 13/02/2008 04:57

Re: Ayuda por favor
 
este tea debería haber ido a la categoría de php del foro.

luchozero 13/02/2008 05:06

Re: Ayuda por favor
 
mm no te he ententido muy bien :(

hades87 13/02/2008 05:29

Re: Ayuda por favor
 
que este tema tendría que haber ido al foro de php y no a este :P

luchozero 13/02/2008 05:38

Re: Ayuda por favor
 
jeje pues puede ser, pero como ayer empezaron a contestarme en este parece que lo han dejado en el general. Por cierto sigo buscado la ayudita de como poner para que la programacion solo deje entrar archivos en JPEG y GIF

hades87 13/02/2008 05:43

Re: Ayuda por favor
 
pues pregunta en el foro de php, que seguro que te ayudarán encantados ^^

hgp147 13/02/2008 06:27

Re: Ayuda por favor
 
Código PHP:

<?
$status 
"";
if (
$_POST["action"] == "upload") {
// obtenemos los datos del archivo
$tamano $_FILES["archivo"]['size'];
$tipo $_FILES["archivo"]['type'];
$archivo $_FILES["archivo"]['name'];
$prefijo substr(md5(uniqid(rand())),0,6);

if ((
strpos($tipo"gif") || strpos($tipo"jpeg")) && $tamano 100000) {
// guardamos el archivo a la carpeta files
$destino "files/".$prefijo."_".$archivo;
if (
copy($_FILES['archivo']['tmp_name'],$destino)) {
$status "Archivo subido: <b>".$archivo."</b>";
} else {
$status "Error al subir el archivo";
}
} else {
$status "Error al subir archivo";
}
}
?>



La zona horaria es GMT -6. Ahora son las 11:57.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.