estoy viendo que el script original esta implementado en cakephp 1.3
y como es que se llama move_uploaded_file($file['tmp_name'],
$url); ???
no es segun php5
move_uploaded_file($file['file']['tmp_name'], $url);???


On 27 nov, 14:31, Ogalav <[email protected]> wrote:
> el script lo entiendo perfectamente.
> pero lo implemento y ni si quiera me da un error ..actualizo la
> carpeta de files en webroot y nada que sube el pdf
>
> codigo:
>  en el add del controller
>
>         $name = $this->request->data['Orden']['doc']['name'];//--> nombre del
> archivo (como se va a guardar)
>                         $formdata = $this->request->data['Orden']['doc']; 
> //--> el array
> que contiene la info del archivo
>                         $folder = 'files'; //--> la carpeta en la que se 
> guarda
>                         $itemid = null; //--> opcional para crear una 
> subcarpeta
>
>         $this->_uploadFiles($name, $formdata, $folder, $itemid);
>
> -----------------
> en el appcontroller
>
>         function _uploadFiles($name, $formdata, $folder, $itemId=null) {
>                                 // setup dir names absolute and relative
>                                 $folder_url = WWW_ROOT.$folder;
>                                 $rel_url = $folder;
>
>                                 // create the folder if it does not exist
>                                 if(!is_dir($folder_url)) {
>                                         mkdir($folder_url);
>                                 }
>
>                                 // if itemId is set create an item folder
>                                 if($itemId) {
>                                         // set new absolute folder
>                                         $folder_url = 
> WWW_ROOT.'archivos/'.$folder.'/'.$itemId;
>                                         // set new relative folder
>                                         $rel_url = 
> 'archivos/'.$folder.'/'.$itemId;
>                                         // create directory
>
>                                         //die($folder_url);
>                                         if(!is_dir($folder_url)) {
>                                                 mkdir($folder_url);
>                                         }
>                                 }
>
>                                 // list of permitted file types, this is only 
> images but documents
> can be added
>
>                                 $permitted = array('application/pdf' 
> ,'application/x-pdf' );
>
>                                 // loop through and deal with the files
>                                 foreach($formdata as $file) {
>                                         // assume filetype is false
>                                         $typeOK = false;
>                                         // check filetype is ok
>                                         foreach($permitted as $type) {
>                                                 if($type == $file['type']) {
>                                                         $typeOK = true;
>                                                         break;
>                                                 }
>                                         }
>                                         //$result = array('errors', 
> 'nofiles', 'urls');
>                                         // if file type ok upload the file
>
>                                 if($typeOK) {
>                                                 // switch based on error code
>                                                 switch($file['error']) {
>                                                         case 0:
>                                                                 // check 
> filename already exists
>
>                                                                 
> if(!file_exists($folder_url.'/'.$name)) {
>                                                                         // 
> create full filename
>                                                                         
> $full_url = $folder_url.'/'.$name;
>                                                                         $url 
> = $rel_url.'/'.$name;
>                                                                         // 
> upload the file
>                                                                         
> $success = move_uploaded_file($file['tmp_name'], $url);
>                                                                 } else {
>                                                                         
> $success = 0;
>                                                                         
> $result['errors'][] = "El archivo ya existe.";
>                                                                 }
>                                                                 // if upload 
> was successful
>                                                                 if($success) {
>                                                                         // 
> save the url of the file
>                                                                         
> $result['urls'][] = $url;
>                                                                 } else {
>                                                                         
> $result['errors'][] = "Error en la subida del archivo. Por
> favor intente nuevamente.";
>                                                                 }
>                                                                 break;
>                                                         case 3:
>                                                                 // an error 
> occured
>                                                                 
> $result['errors'][] = "Error subiendo el archivo. Por favor
> intente nuevamente.";
>                                                                 break;
>                                                         default:
>                                                                 // an error 
> occured
>                                                                 
> $result['errors'][] = "Error de sistema uploading el archivo.
> Contacte con el administrador.";
>                                                                 break;
>                                                 }
>                                         } elseif($file['error'] == 4) {
>                                                 // no file was selected for 
> upload
>                                                 $result['nofiles'][] = "No 
> ningun archivo seleccionado";
>                                         } else {
>                                                 // unacceptable file type
>                                                 $result['errors'][] = "El 
> archivo no puede ser subido. Solo
> archivos: PDF.";
>                                         }
>                                 }
>                         return $result;
>                         }
>
> en teoria no esta realizando el return porque no lo estoy solicitando.
> aunque lo hice de la siguiente forma:
>
> public function add() {
>         if ($this->request->is('post')) {
>             $this->Orden->create();
>                         //subiendo archivo
>
>                         $name = 
> $this->request->data['Orden']['doc']['name'];//--> nombre
> del archivo (como se va a guardar)
>                         $formdata = $this->request->data['Orden']['doc']; 
> //--> el array
> que contiene la info del archivo
>                         $folder = 'files'; //--> la carpeta en la que se 
> guarda
>                         $itemid = null; //--> opcional para crear una 
> subcarpeta
>
>                         $files_uploads = $this->_uploadFiles($name, 
> $formdata, $folder,
> $itemid);
>
>                         $this->request->data['Orden']['doc'] = 
> $files_uploads['urls'][0];;
>
>             if ($this->Orden->save($this->request->data)) {
>                 $this->Session->setFlash(__('The orden has been
> saved'));
>                 $this->redirect(array('action' => 'index'));
>             } else {
>                 $this->Session->setFlash(__('The orden could not be
> saved. Please, try again.'));
>             }
>         }
>         $users = $this->Orden->User->find('list');
>
>         $this->set(compact('users'));
>     }
>
> y pues en este caso me dijo que no reconocia el indice urls
>
> entonces estoy suponiendo que ni si quiera esta pasando por el
> move_uploaded_file($file['tmp_name'], $url);
>
> seguire intentando..
>
> On 26 nov, 03:42, Guillermo Arancio <[email protected]> wrote:
>
>
>
>
>
>
>
> > Hola Omar, estuve revisando mis scripts y encontre uno que saque de
> > internet hace mucho para guardar un archivo en el webroot
>
> > ahi te lo paso
>
> > $name --> nombre del archivo (como se va a guardar)
> > $formdata --> el array que contiene la info del archivo
> > $folder --> la carpeta en la que se guarda
> > $itemid --> opcional para crear una subcarpeta
>
> > esta funcion la cree en el modelo
>
> > function _uploadFiles($name, $formdata, $folder, $itemId = null) {
> >         // setup dir names absolute and relative
> >         $folder_url = WWW_ROOT.$folder;
> >         $rel_url = $folder;
>
> >         // create the folder if it does not exist
> >         if(!is_dir($folder_url)) {
> >             mkdir($folder_url);
> >         }
>
> >         // if itemId is set create an item folder
> >         if($itemId) {
> >             // set new absolute folder
> >             $folder_url = WWW_ROOT.'archivos/'.$folder.'/'.$itemId;
> >             // set new relative folder
> >             $rel_url = 'archivos/'.$folder.'/'.$itemId;
> >             // create directory
>
> >             //die($folder_url);
> >             if(!is_dir($folder_url)) {
> >                 mkdir($folder_url);
> >             }
> >         }
>
> >         // list of permitted file types, this is only images but documents
> > can be added
> >         //$permitted =
> > array('image/gif','image/jpeg','image/pjpeg','image/png');
> >         $permitted = array('application/pdf' ,'application/x-pdf' );
> >  //solo sube pdfs
>
> >         // loop through and deal with the files
> >         foreach($formdata as $file) {
> >             // assume filetype is false
> >             $typeOK = false;
> >             // check filetype is ok
> >             foreach($permitted as $type) {
> >                 if($type == $file['type']) {
> >                     $typeOK = true;
> >                     break;
> >                 }
> >             }
> >             //$result = array('errors', 'nofiles', 'urls');
> >             // if file type ok upload the file
> >             if($typeOK) {
> >                 // switch based on error code
> >                 switch($file['error']) {
> >                     case 0:
> >                         // check filename already exists
> >                         if(!file_exists($folder_url.'/'.$name)) {
> >                             // create full filename
> >                             $full_url = $folder_url.'/'.$name;
> >                             $url = $rel_url.'/'.$name;
> >                             // upload the file
> >                             $success =
> > move_uploaded_file($file['tmp_name'], $url);
> >                         } else {
> >                             $success = 0;
> >                             $result['errors'][] = "El archivo ya existe.";
> >                         }
> >                         // if upload was successful
> >                         if($success) {
> >                             // save the url of the file
> >                             $result['urls'][] = $url;
> >                         } else {
> >                             $result['errors'][] = "Error en la subida del
> > archivo. Por favor intente nuevamente.";
> >                         }
> >                         break;
> >                     case 3:
> >                         // an error occured
> >                         $result['errors'][] = "Error subiendo el archivo.
> > Por favor intente nuevamente.";
> >                         break;
> >                     default:
> >                         // an error occured
> >                         $result['errors'][] = "Error de sistema uploading
> > el archivo. Contacte con el administrador.";
> >                         break;
> >                 }
> >             } elseif($file['error'] == 4) {
> >                 // no file was selected for upload
> >                 $result['nofiles'][] = "No ningun archivo seleccionado";
> >             } else {
> >                 // unacceptable file type
> >                 $result['errors'][] = "El archivo no puede ser subido. Solo
> > archivos: PDF.";
> >             }
> >         }
> >     return $result;
> >     }
>
> > y la llamo desde el controller de la siguiente manera:
>
> >       $result = $this->Documento->_uploadFiles($name, $formdata, $folder,
> > $subfolder);
> >       //copio el resultado de la funcion en la variable que va a almacenar
> > la direccion del archivo
> >       $this->data['Documento']['archivo'] = $result['urls'][0];
>
> > espero que te sirva.
>
> > --
> > Saludos Guillermo Arancio

-- 
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos 
de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a 
[email protected].
Para anular tu suscripción a este grupo, envía un correo electrónico a 
[email protected]
Para tener acceso a más opciones, visita el grupo en 
http://groups.google.com/group/cakephp-es?hl=es.

Responder a