Foros del Web » Programando para Internet » PHP »

Subir y reemplazar archivo existente

Estas en el tema de Subir y reemplazar archivo existente en el foro de PHP en Foros del Web. Hola Amigos. Tengo un excelente script que permite subir archivos, pero si el archivo ya esta arriba entonces me da error, lo que deseo es ...
  #1 (permalink)  
Antiguo 01/09/2007, 09:04
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 3 meses
Puntos: 11
Subir y reemplazar archivo existente

Hola Amigos.

Tengo un excelente script que permite subir archivos, pero si el archivo ya esta arriba entonces me da error, lo que deseo es lograr que si el archivo existe lo reemplace, alguien puede ayudarme a hacer este pequeño cambio.

Código PHP:
<?php
/* I had tested it in PHP4b3, Apache under windows 95/98 */
/* MultiUP by npguy, [email protected] */

/* Destination of Upload files..use / insted of \\ in UNIX */
define("DESTINATION""/home/.../");

/* Number of Upload files */
define("UPLOAD_NO"2);

echo(
"<p align='center'><b><font size='4'>MultiUP<br>For our USE ONLY!.<br>");

if(
$REQUEST_METHOD!="POST")
{
    print 
"<form enctype=\"multipart/form-data\" method=post>\n";
    print 
"<INPUT TYPE=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"3000000\">\n";

    for(
$i=1$i<=UPLOAD_NO$i++)
    {
        echo 
"<input type=file name=infile$i>&nbsp;&nbsp;&nbsp;&nbsp;";
        
        if(
$i&#37;2==0)
        
print"<br>";
    }
    echo 
"<br><br><input type=submit value=upload></form>\n";
}
else
{
    
/* handle uploads */
    
$noinput true;
    for(
$i=1$noinput && ($i<=UPLOAD_NO); $i++)
    {
        if(${
"infile".$i}!="none"$noinput=false;
    }
    if(
$noinput)
    {
        print 
"<big><B>Error uploading. Try again.</B></big>";
        exit();
    }
echo(
"<p align='center'><b><font size='4'>Successfully Uploaded<br>");

echo(
"<table border='1' width='84%' height='52' bordercolorlight='#008080' bordercolordark='#008080'>
  <tr>
    <td width='14%' bgcolor='#008000' height='21'><font color='#FFFFFF'><b>Sn</b></font></td>
    <td width='52%' bgcolor='#008000' height='21'><font color='#FFFFFF'><b>Filename</b></font></td>
    <td width='34%' bgcolor='#008000' height='21'><font color='#FFFFFF'><b>Size</b></font></td>
    </tr>"
);
  
    for(
$i=1$i<=UPLOAD_NO$i++)
    {
        
        
$just=filesize(${"infile".$i});
        
$fp_size[i] = $just;
        
        if(${
"infile".$i}!="none" &&
         
copy(${"infile".$i}, DESTINATION.${"infile".$i."_name"}) &&
         
unlink(${"infile".$i}))
        {        
        echo(
"<tr>
            <td width='14%' height='19'>$i</td>
            <td width='52%' height='19'>${"infile".$i."_name"}</td>
            <td width='34%' height='19'>$fp_size[i]</td>    
          </tr>
          "
);            
        }
    }
    echo 
"</table>";

?>
gracias
  #2 (permalink)  
Antiguo 01/09/2007, 15:02
 
Fecha de Ingreso: julio-2004
Mensajes: 117
Antigüedad: 19 años, 9 meses
Puntos: 0
Re: Subir y reemplazar archivo existente

Hola, yo uso un script que encontre en internet y funciona de maravilla. Además si subo un archivo repetido, lo reemplaza.

El fichero que lo sube "upl2.php"
Código PHP:
<?
///////////////////////
// Upload de Archivos//
// akuatik 03'       //
// http://akuatik.net//
// for PHP > 4.2.x   //
///////////////////////

// Configuración //
///////////////////
// $extensiones=array("1ªext","2ªext","....");
// Aqui debes poner las extensiones que NO admitas
// por ejemplo si no quieres admitir .html , .exe ni .gif :
// $extensiones=array("html","exe","gif");
///////////////////////////////////////
$extensiones=array("html","exe","php");
/////////////////
// $path="/ruta/ta/ta";
// Si el server rula bajo LinuX toda la ruta completa /var/etc/..
// Si rulas bajo WindoWs C:/midirectorioroot/tal..
// Nota: Sin el último / ej: C:/miweb NO C:/miweb/
////////////////
$path="C:";
$nombre=$HTTP_POST_FILES['archivo']['name'];
$tamanio=$HTTP_POST_FILES['archivo']['size'];
$tipo=$HTTP_POST_FILES['archivo']['type'];
$var explode(".","$nombre");
$num count($extensiones);
$valor $num-1;
for(
$i=0$i<=$valor$i++) {
    if(
$extensiones[$i] == $var[1]) {
    echo 
"Tipo de Archivo no admitido";
    exit;
    }
}
if (
is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name']))
 {
  
copy($HTTP_POST_FILES['archivo']['tmp_name'], "$path/$nombre");
  echo 
"El archivo se ha subido correctamente al servidor, muchas gracias <p>";
  echo 
"Nombre: $nombre <p>";
  echo 
"Tamaño: $tamanio <p>";
  echo 
"Tipo: $tipo";
 }
else { echo 
"Error al subir el archivo"; }
?>
y para llamarlo

Código PHP:
<HTML>
<?
///////////////////////
// Upload de Archivos//
// akuatik 03'       //
// http://akuatik.net//
// for PHP > 4.2.x   //
///////////////////////
?>
<form method="POST" enctype="multipart/form-data" action="upl2.php">
<input type="file" name="archivo" size="20">
<input type="submit" value="Enviar" name="send">
<input type="reset" value="Borrar" name="erase">
</form>
</HTML>
El autor simplemente exige que se nombre la procedencia del script:

Uploader v.10 by akuatik ([email protected])
__________________
Uno para todos y todos para uno
  #3 (permalink)  
Antiguo 01/09/2007, 16:40
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 19 años, 11 meses
Puntos: 4
Re: Subir y reemplazar archivo existente

Muy bueno, justamente es lo que necesitaba, gracias por tu aporte, funciona perfecto al menos en un linux.
Por si les sirve la ruta en el linux para una carpeta determinada sería
Código PHP:
$path="listas/"
es decir si en tu public_html tenes una carpeta por ejemplo donde guardas tus listas eso sería asi. parece un apavada pero a veces nos perdemos con las rutas mas de lo debido.
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 10:00.