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
{
//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..
$ruta="../www/plasticosomega/public/img/";
debería ser absoluta esa ruta...
$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/"