Foros del Web » Programando para Internet » PHP »

move_uploaded_file PROBLEMA

Estas en el tema de move_uploaded_file PROBLEMA en el foro de PHP en Foros del Web. NO COPIA NADA, siempre returna false, que está mal??? <?php $extensiones=array("zip"); //$dbuser="root"; //usuario de la base de datos //$dbpass="root2512"; // password para la base if ...
  #1 (permalink)  
Antiguo 13/01/2004, 09:54
 
Fecha de Ingreso: enero-2004
Mensajes: 8
Antigüedad: 20 años, 2 meses
Puntos: 0
Pregunta move_uploaded_file PROBLEMA

NO COPIA NADA, siempre returna false, que está mal???
<?php
$extensiones=array("zip");
//$dbuser="root"; //usuario de la base de datos
//$dbpass="root2512"; // password para la base
if (isset($_FILES['archivo']['name'])){
$path="scripts/";
$nombre=$_FILES['archivo']['name'];
$var = explode(".","$nombre");
$num = count($extensiones);
$valor = $num-1;
$admitido=false;
for($i=0; $i<=$valor; $i++) {
if($extensiones[$i] == $var[1]) {
$admitido=true;//es una extension valida
break;
}
}
if ($admitido){
$path.=$nombre;
$res=move_uploaded_file($_FILES["archivo"]["name"], $path);
if ($res){
print "Archivo subido";
}else{
print "ERROR subiendo el archivo";
}
}else{
print "La extension debe ser ZIP";
}
}
?>

Última edición por root; 13/01/2004 a las 09:55
  #2 (permalink)  
Antiguo 13/01/2004, 10:00
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Comprueba que realmente se ha subido el fichero con is_uploaded_file() (www.php.net/is_uploaded_file).

Asegurate de que existe el subdirectorio 'scripts' en el directorio actual, y de que PHP tenga permisos de escritura.

Tambien seria recomendable que en lugar de usar la ruta relativa para el directorio destino, usases una ruta absoluta.

Saludos.

PD: Pon
Código PHP:
error_reporting(E_ALL); 
al comienzo de tu script. Y si te sale un mensaje de error, pon cual es.
__________________
Josemi

Aprendiz de mucho, maestro de poco.

Última edición por josemi; 13/01/2004 a las 10:01
  #3 (permalink)  
Antiguo 13/01/2004, 10:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Suponiendo que tenemos:

/
/scripts
upload.php

Podrías usar:
Código PHP:
$path="./scripts/"
(con el ./ que indica "este directorio") .. Pero lo ideal es que uses ruta absoluta tipo: /var/www/sitiotal/scripts .. Esa ruta la puedes obtener vía:


Código PHP:
$ruta_absoluta=$_SERVER['DOCUMENT_ROOT'];
$path=$ruta_absoluta."/scripts/"
PD: no recuerdo si DOCUMENT_ROOT mete un / al final o no .. en tal caso .. quitarlo a /scripts/ si corresponde ..
PD2: $_SERVER está disponible desde PHP 4.1.0 en adelante.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 13/01/2004, 10:26
 
Fecha de Ingreso: enero-2004
Mensajes: 8
Antigüedad: 20 años, 2 meses
Puntos: 0
Pregunta ahora esto

if (is_uploaded_file($_FILES["archivo"]["name"])){
$res=move_uploaded_file($_FILES["archivo"]["name"], $path);
if ($res){
print "Archivo subido";
}else{
print "ERROR subiendo el archivo";
}
}else{
print "NO IUF";
}

gracias, lo del directorio lo entiendo perfectamente,
pero ahora que uso el is_uploaded_file
siempre me retorna false
porque?
antes utilizaba copy() en lugar de move...
y todo estaba perfecto, pero en webcindario.com no
aceptan el copy, asi que no lo puedo utilizar,
  #5 (permalink)  
Antiguo 13/01/2004, 10:34
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Jesus, debo andar medio dormido. El problema es que en move_uploaded_file() y en is_uploaded_file() estas usando $_FILES['archivo']['name'] para referirte al fichero subido. Pero lo que tienes que usar es $_FILES['archivo']['tmp_name'] que es la ruta temporal donde se ha guardado el fichero.

Saludos. (me vuelvo a )
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 13/01/2004, 10:40
 
Fecha de Ingreso: enero-2004
Mensajes: 8
Antigüedad: 20 años, 2 meses
Puntos: 0
jaja, cierto, yo tambien me acabo de dar cuenta,
pero ahora esto,
ya lo subi y ahora si funciona localmente, pero no arriba

Warning: move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 48 is not allowed to access / owned by uid 0 in /home/webcindario/myphp/upload.php on line 39
ERROR subiendo el archivo

mirenlo ustedes mismo
http://myphp.webcindario.com/upload.php

ahora que?
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 16:56.