Upload de Archivos

dzerito
14 de Diciembre del 2002
Necesito saber el codigo correcto para subir archivos desde una web usando php.
Es que el que tengo esta mal.
Gracias por su atencion =P

Ezequiel
14 de Diciembre del 2002
Probá con este programita en php que funciona muy bien.

saludos y cualquier cosa escribime.
Ezequiel
------------------------------

<?php
// Control anti-cache
header("Expires: 0");
header("Pragma: no-cache");

// Configuración de variables
$path = "C:\dir en el server\tmp";
/* Ruta dentro del servidor hacia el directorio en
donde se almacenan los archivos. */

$url = "http://www.TUSITIO.XXX/tmp";
/* URL absoluta del directorio en donde se almacenan
los archivos. */

$tam = 5000;
/* Tamaño máximo para los archivos que sean enviados.
(en kilobytes) */

//--------------------------------------------------

// A continuación se encuentra una implementación de
// la función in_array().
// Esta función ya viene incluida en PHP4, así que solo
// es necesario utilizarla cuando usted trabaja sobre
// PHP3.
/*
function in_array($needle, $haystack) {
for($i=0;$i<count($haystack)&&$haystack[$i]!=$needle;$i++);
return ($i!=count($haystack));
}
*/


if(isset($send)) {
$dir = opendir($path);
while($arch = readdir($dir))
$directorio[count($directorio)] = $arch;
closedir($dir);
$mensaje = "<font face="Verdana, Arial" size=2>n";
if($archivo == "none") {
$mensaje .= "No ha seleccionado ningún archivo para agregar a la lista. ";
$mensaje .= "Por favor inténtelo de nuevo.";
}
elseif(in_array($archivo_name,$directorio)) {
$mensaje .= "Ya existe un archivo con el nombre <b>$archivo_name</b>";
$mensaje .= "Por favor inténtelo de nuevo.";
}
else {
$fichero = $path . "/" . $archivo_name;
copy($archivo, $fichero);
$kb = filesize($fichero) / 1024;
if($kb > $tam) {
unlink($fichero);
$mensaje .= "No puede ser agregado ya que ha pasado el tamaño permitido. ";
$mensaje .=
"Actualmente sólo permitimos archivos de hasta $tam kb.";
}
else {
$mensaje .= "Su archivo ha sido agregado exitosamente. ";
$mensaje .= "Muchas gracias por su contribución.";
}
}
$mensaje .= "</font><br><hr><br>n";
}
$dir = opendir($path);
while($arch = readdir($dir)) {
if($arch != '.' && $arch != '..')
$archivos[count($archivos)] = $arch;
}
closedir($dir);
if(count($archivos) > 0)
sort($archivos);
?>
<html>
<head>
<title>Listado interactivo de archivos</title>
</head>
<body>
<?php echo $mensaje;?>
<font face=Arial size=2>
Bienvenido al listado interactivo de archivos.
Actualmente contamos con los siguientes archivos:</font><br><br>
<font face="Courier New, Arial" size=2>
<?php
if(count($archivos) == 0) {
echo "No existen archivos actualmente.<br>n";
}
else {
for($i = 0; $i < count($archivos); $i++)
echo "<a href="".$url."/".rawurlencode($archivos[$i])."">".$archivos[$i]."</a><br>n";
}
?>
</font>
<hr>
<br>
<font face="Verdana, Arial" size=2>
Si desea agregar un archivo a la lista utilize el siguiente formulario:</font><br>
<form action="<?php echo $PHP_SELF; ?>" method=post enctype="multipart/form-data">
Archivo: <input type=file name=archivo><br>
<input type=submit name=send value=Enviar>
</form>
</body>
</html>

ricki
14 de Diciembre del 2002
Hola.
Tengo ese mismo código en un servidor y me funciona muy bien.
Como puedo hacer para utilizarlo desde otro servidor.
Me refiero a un html de otro servidor que llame a subir.php y suba los archivos(no importa donde se suban los archivos)
Esto, de momento lo hago con un <a href="http://.../subir.php">subir archivos</a>
pero lo que no quiero es entrar en el otro servidor, solo utilizarlo para subirlos y que mande la respuesta al servidor donde está el html.

He provado con form action="http://.../subir.php" pero se abre en el explorador el archivo subir php y lo que quiero es recibir la respuesta en vez de meterme.

A ver si alguien me puede ayudar. Si no se puede hacer esto decídmelo por favor.
Gracias.

david carrero
14 de Diciembre del 2002
Busca en

www.hotscripts.com