Foros del Web » Programando para Internet » PHP »

Upload!!!!!!!!!!!!!!!

Estas en el tema de Upload!!!!!!!!!!!!!!! en el foro de PHP en Foros del Web. hola, tengo una pagina en donde pues tengo un boton "file" para enviar una imagen en la segunda lo recibo, pero no se que pasa ...
  #1 (permalink)  
Antiguo 20/03/2005, 12:14
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 19 años, 7 meses
Puntos: 0
Upload!!!!!!!!!!!!!!!

hola, tengo una pagina en donde pues tengo un boton "file" para enviar una imagen en la segunda lo recibo, pero no se que pasa es que guarda las imagenes en la sgte direccion: C:\Archivos de programa\Apache Group\Apache y no en una carpeta elegida por mi como esta: upload_tmp_dir = C:/Servidor/PHP/uploads/ , esta ultima la configure con el archivito de php.ini y en dicha carpeta "uploads" deberian haber quedado esos archivos.
sin mas cuentos les mostrare los archivos que procesan esto:

el primero se llama index.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Subir archivos</title>
<link rel="STYLESHEET" type="text/css" href="estilos_admin.css">
</head>

<body>
<h1>Subir archivos</h1>
<br>
<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>
</body>
</html>

este segundo se llama: subearchivo.php



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Subiendo una nueva foto</title>
<link rel="STYLESHEET" type="text/css" href="estilos_admin.css">
</head>

<body>
<h1>Subiendo un archivo</h1>
<br>
<div align="center">
<?
//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.";
}
}
?>
<br>
<br>

<a href="index.php">Volver</a>
<br>
</div>
</body>
</html>

cual creen que es mi error?????????????
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #2 (permalink)  
Antiguo 20/03/2005, 12:39
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
Es q la carpeta q definiste en php.ini es la temporal. Cuando php sube un archivo lo guarda primero en una carpeta temporal (en tu caso C:/Servidor/PHP/uploads/).
y con move_uploaded_file lo mueve a la carpeta q definiste en el script NINGUNA, por eso la guarda en el raíz de tu server (algo q no sabia q hacia realmente).
Agregale algo así

$prefijo = time();
$url = "/imgs/2005/";
$directorio = $_SERVER['DOCUMENT_ROOT'].$url;
$ruta1 = $directorio.$prefijo.$img1["name"];
if (move_uploaded_file($img1['tmp_name'],$ruta1)){echo "El archivo ha sido cargado correctamente.<br>/n"
En la variable ruta debes definir donde quieres guardar el archivo, $prefijo solo la uso para q no haya ningun archivo con el mismo nombre, porq si los hay, los sobreescribiría, es decir q si un usuario subió una imagen con el nombre de marta.jpg cuando otro suba un archivo con el mismo nombre el primero sería reemplazado con éste. A Marta no le va a gustar q en una reunión familiar decida mostrar su album online y encuentre q marta.jpg no solo q no es ella, sino q esta en poses extrañas.
Saludos cuidate
PD, debes crear primero la carpeta donde guardarás las imgs
__________________
Dios dira que esto no es justo, pero lo sera...
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:28.