Error subiendo archivo al server

edited octubre 2008 in Principiantes
Buenas a todos.
Estoy intentando realizar una rutina para subir un archivo al servidor y me genera este error.

Warning: move_uploaded_file(../www/plasticosomega/public/img/) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\wamp\www\plasticosomega\controllers\Permisos_controller.php on line 63

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\wamp\tmp\phpB0.tmp' to '../www/plasticosomega/public/img/' in C:\wamp\www\plasticosomega\controllers\Permisos_controller.php on line 63


Estoy usando la versión del framework 0.47 y el codigo que estoy usando en el controlador es

function insert()
{
//if(isset($_POST))
// {

$config = Config::read("admin.ini");
$MAX_SIZE = 8000000;
// if (isset($_FILES)) {
$file_type = $_FILES;
$file_name = $_FILES;
$temp_name = $_FILES;
$file_ext = strtolower(substr($file_name,strrpos($file_name,".")));
$this->ext = $file_ext;
$prefijo = substr(md5(uniqid(rand())),0,6);
if ($_FILES == "image/jpeg" || $_FILES == "audio/x-ms-wma" || $_FILES == "video/x-ms-asf" || $_FILES == "video/x-ms-wmx" || $_FILES == "application/x-ms-wmz" || $_FILES == "image/bmp" || $_FILES == "image/gif" || $_FILES == "video/avi" || $_FILES == "application/x-shockwave-flash" || $_FILES =="video/quicktime" || $_FILES =="video/x-mpeg" || $_FILES == "video/x-motion-jpeg" || $_FILES == "audio/x-pn-realaudio" || $_FILES == "audio/midi
" || $_FILES == "audio/x-mpeg-3" || $_FILES == "audio/basic" || $_FILES == "video/msvideo") {
//Aca reemplazo saco las comillas y barras de los nombres
$file_name = str_replace("\\","",$file_name);
$file_name = str_replace("'","",$file_name);
//Aca reemplazo los espacios del nombre por guion bajo
$file_name = str_replace(" ","_",$file_name);
//Chequeo el nombre del archivo
if ( $file_name =="")
Flash::error('Nombre invalido o vacio');
else{
$this->file_path = $prefijo.$file_name;
$ruta="../www/plasticosomega/public/img/";
//.$this->file_path;


$Permi = new Permisos();
$Permi->descripcion = $_POST["descripcion"];
//$Permi->urlfoto = "imagenes/".$this->file_path;
$Permi->imagen = "imagenes/".$this->file_path;

$Permi->save();


move_uploaded_file($temp_name, $ruta);
return $this->route_to('action: index');

//if($this->Permisos->create_from_request())
Flash::success($config->msgs->msgOKRegistroGuardado);
//else
// Flash::error($config->msgs->msgERRORRegistroNoGuardado);

//$_REQUEST = $this->Permisos->find();
//$_REQUEST = 1;
//$this->route_to('action: index');

}
}
}


que estoy haciendo mal. ???

Gracias

Comentarios

  • Puedes resultar cual es la linea 63...
  • edited 5:30
    function insert()
    {
    //if(isset($_POST))
    // {

    $config = Config::read("admin.ini");
    $MAX_SIZE = 8000000;
    // if (isset($_FILES)) {
    $file_type = $_FILES;
    $file_name = $_FILES;
    $temp_name = $_FILES;
    $file_ext = strtolower(substr($file_name,strrpos($file_name,".")));
    $this->ext = $file_ext;
    $prefijo = substr(md5(uniqid(rand())),0,6);
    if ($_FILES == "image/jpeg" || $_FILES == "audio/x-ms-wma" || $_FILES == "video/x-ms-asf" || $_FILES == "video/x-ms-wmx" || $_FILES == "application/x-ms-wmz" || $_FILES == "image/bmp" || $_FILES == "image/gif" || $_FILES == "video/avi" || $_FILES == "application/x-shockwave-flash" || $_FILES =="video/quicktime" || $_FILES =="video/x-mpeg" || $_FILES == "video/x-motion-jpeg" || $_FILES == "audio/x-pn-realaudio" || $_FILES == "audio/midi
    " || $_FILES == "audio/x-mpeg-3" || $_FILES == "audio/basic" || $_FILES == "video/msvideo") {
    //Aca reemplazo saco las comillas y barras de los nombres
    $file_name = str_replace("\\","",$file_name);
    $file_name = str_replace("'","",$file_name);
    //Aca reemplazo los espacios del nombre por guion bajo
    $file_name = str_replace(" ","_",$file_name);
    //Chequeo el nombre del archivo
    if ( $file_name =="")
    Flash::error('Nombre invalido o vacio');
    else{
    $this->file_path = $prefijo.$file_name;
    $ruta="../www/plasticosomega/public/img/";
    //.$this->file_path;


    $Permi = new Permisos();
    $Permi->descripcion = $_POST["descripcion"];
    //$Permi->urlfoto = "imagenes/".$this->file_path;
    $Permi->imagen = "imagenes/".$this->file_path;

    $Permi->save();


    move_uploaded_file($temp_name, $ruta);

    return $this->route_to('action: index');

    //if($this->Permisos->create_from_request())
    Flash::success($config->msgs->msgOKRegistroGuardado);
    //else
    // Flash::error($config->msgs->msgERRORRegistroNoGuardado);

    //$_REQUEST = $this->Permisos->find();
    //$_REQUEST = 1;
    //$this->route_to('action: index');

    }
    }
    }

    Lo marcado en rojo.


    Por otro lado quiero agradecerles su presencia en las XXII Jornada de Infociencias a las cual ustedes asistirán. Yo soy egresado de esa casa de estudios y hace un año tuve la oportunidad de ser uno de los organizadores de este evento y realizamos la presentación de un proyecto denominado SOVIET, el cual, fue desarrollado usando este framework. Es decir la presencia de Kumbia en Infociencias ya se ha hecho presente. Gracias..
  • Gracias que placer para nosotros...
  • lo que sucede es que esa función no permite rutas relativas...

    $ruta="../www/plasticosomega/public/img/";

    debería ser absoluta esa ruta...
  • edited 5:30
    coloque esta ruta pero tampoco me funciona.

    $ruta="../www/plasticosomega/public/img/".$this->file_path;
  • coloque esta ruta pero tampoco me funciona.

    $ruta="../www/plasticosomega/public/img/".$this->file_path;

    Estas haciendo lo mismo, esa ruta es relativa, la idea es que le pases una ruta absoluta por ejemplo...

    $ruta = "C:\wamp\www\plasticosomega\public\temp"

    si estuvieras en alguna distribución GNU/Linux

    $ruta = "/var/www/"
  • edited 5:30
    Le coloque la ruta C:\wamp\www\plasticosomega\public\img $ruta = "C:\wamp\www\plasticosomega\public\img "; y no funciona. No se que pueda ser.. que lala
Sign In or Register to comment.