Foros del Web » Programando para Internet » PHP »

Subir archivo y preguntar para sobreescribir

Estas en el tema de Subir archivo y preguntar para sobreescribir en el foro de PHP en Foros del Web. Hola amigos: Estoy haciendo un script para subir un archivo a una carpeta pero no se como hacer que si existe pregunte ¿Desea sobreescribir? Si ...
  #1 (permalink)  
Antiguo 25/08/2010, 11:17
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 8 meses
Puntos: 15
Exclamación Subir archivo y preguntar para sobreescribir

Hola amigos:

Estoy haciendo un script para subir un archivo a una carpeta pero no se como hacer que si existe pregunte ¿Desea sobreescribir? Si dice si hacer el proceso y si dice no enviarlo nuevamente al form de carga. Estos son mis archivos.

Código HTML:
<form action="upload.php" method="post" enctype="multipart/form-data">
  <table width="496" border="0" align="center" cellspacing="4" bgcolor="#FFFFFF">
    <tr>
      <td colspan="2" align="center" bgcolor="#996600"><strong style="font-family:Arial, Helvetica, sans-serif">CARGAR FOTOS HOME</strong></td>
      </tr>
    <tr align="center">
      <td width="149">Foto a cargar</td>
      <td width="294"><input name="userfile" type="file" size="35" />
      <input type="hidden" name="MAX_FILE_SIZE" value="100000">   
      </td>
    </tr>
    <tr align="center">
      <td colspan="2"><input name="enviar" type="submit" value="Cargar Foto" /></td>
      </tr>
    <tr align="center" bgcolor="#996633">
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      </tr>
  </table></form> 
y el php

Código PHP:
$path="../thumbs/"
$nombre_archivo $_FILES['userfile']['name'];
$tipo_archivo $_FILES['userfile']['type'];
$tamano_archivo $_FILES['userfile']['size'];
if (!((
strpos($nombre_archivo"doc") || strpos($nombre_archivo"gif") || strpos($nombre_archivo,"jpg"))))
{
echo 
"La extensión o el tamaño de los archivos no es correcta";
}
if (
$nombre_archivo == $nombre_archivo) {
echo 
"El archivo existe. Desea sobreescribir";
}

else
{
if (
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $path.$_FILES['userfile']['name']))
{
echo 
"El archivo ha sido cargado correctamente.";
echo 
"<input name=\"enviar\" type=\"submit\" value=\"Regresar\" onClick=\"location.href='admin.php'\" />";
}
else
{
echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse.";
}

Estoy trancada es con esto:

Código PHP:
if ($nombre_archivo == $nombre_archivo) {
echo 
"El archivo existe. Desea sobreescribir";

Por favor me pueden dar una idea de como hacerlo.

Gracias...
__________________
Caminando con el corazón partío
  #2 (permalink)  
Antiguo 25/08/2010, 11:29
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Subir archivo y preguntar para sobreescribir

php se ejecuta en el servidor, y como tal ya termina de ejecutarse cuando el contenido devuelto es reflejado en el navegador, lo que puedes hacer es mover el archivo colocándole un prefijo (copia_archivo.php) en el caso de que exista, de modo que puedas almacenarlo temporalmente e imprimas a la salida del script un pequeño form en donde realices la pregunta, diriges su action hacia otro script en php que renombre el archivo en el caso de que desee sobrescribir o borrarlo en caso contrario, es decir, hacer otro post para eso, en este caso solo enviando la respuesta del usuario
  #3 (permalink)  
Antiguo 25/08/2010, 11:30
Avatar de armandoweb  
Fecha de Ingreso: enero-2003
Ubicación: San Cristobal, Santa Fe, Argentina
Mensajes: 544
Antigüedad: 21 años, 2 meses
Puntos: 7
Respuesta: Subir archivo y preguntar para sobreescribir

Hola:

Estos creo que serían los pasos realizar:

- Tomar el nombre y extension del archivo que sube el usuario.
- Buscar en el servidor y comparar si el archivo a subir esta en el servidor y que pregunte que desea hacer
- Si le dices que si, sobreescribir, si le dices que no, cancelar.

Donde dices que estas trancada, con este if ($nombre_archivo == $nombre_archivo), estas intentando comparar el mismo archivo a subir.

Lo que deberias hacer antes de esto es tomar el nombre $nombre_archivo y buscar ese nombre en la carpeta /thumbs/ y recien ahi comparar si existe o no con el if que tienes...

Saludos.
__________________
www.awdesarrollos.com.ar - [twitter: @armandoweb] - [Skype: awdesarrollos"]
  #4 (permalink)  
Antiguo 25/08/2010, 11:45
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 8 meses
Puntos: 15
Respuesta: Subir archivo y preguntar para sobreescribir

Gracias maycolalvarez y armandoweb. Se me ocurre que preguntando con if(file_exists($archivo))
__________________
Caminando con el corazón partío

Etiquetas: subir
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 18:47.