Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Mejorar tiempo para upload con imagenes

Estas en el tema de Mejorar tiempo para upload con imagenes en el foro de Frameworks y PHP orientado a objetos en Foros del Web. tengo mi aplicación para publicar anuncios donde se suben imágenes cuando estos se publican, mi problema esta que tarda de 30 segundos a 1 minuto ...
  #1 (permalink)  
Antiguo 01/03/2017, 08:47
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años
Puntos: 2
Mejorar tiempo para upload con imagenes

tengo mi aplicación para publicar anuncios donde se suben imágenes cuando estos se publican, mi problema esta que tarda de 30 segundos a 1 minuto en subir lo cual es mucho tiempo de espera para un usuario, bueno esto no ocurría antes de que agregase el plugin ImageTool Component de Cakephp aquí mi codigo

Código PHP:
Ver original
  1. ini_set('memory_limit', '256M');
  2. require_once(ROOT . DS . 'vendor' . DS . 'ImageTool.php');
  3. use ImageTool;
  4. class AdvertisementsController extends AppController{
  5.  
  6. private function _resizeImage($image,$output){
  7.     $img = ImageTool::resize(array(
  8.                     'input' => $image,
  9.                     'output' => $output,
  10.                     'width' => 100,
  11.                     'height' => 100,
  12.                     'keepRatio' => true,
  13.                 ));
  14.     $img = ImageTool::autorotate(array(
  15.         'input' => $image,
  16.         'output' => $output,
  17.         'degrees' => 360
  18.     ));
  19.     return $img;
  20. }
  21.  
  22. public function publicadd() {
  23.  
  24. $publicadd = $this->Advertisements->newEntity($this->request->data);
  25.     if($this->request->is('post')){
  26.         $publicadd->id_user = $this->Auth->user('id_user');
  27.         $publicadd = $this->Advertisements->patchEntity($publicadd,$this->request->data);
  28.         if ($this->Advertisements->save($publicadd)) {
  29.             $id = $publicadd->id_advertisement;
  30.             $publicaddimg = $this->AdvertisementsImagenes->query();
  31.             $images = $this->request->data['name_imagen'];
  32.             new Folder(WWW_ROOT . 'anuncios/',true,0755);
  33.             foreach ($images as $image){
  34.                 $data = [
  35.                     'id_advertisement' => $id,
  36.                     'name_imagen' => $image['name'],
  37.                     'upload_date' => date("Y-m-d")
  38.                 ];
  39.                 $publicaddimg->insert(['id_advertisement','name_imagen','upload_date'])
  40.                         ->values($data);
  41.                 $imgname = $image['tmp_name'];
  42.                 $img = $this->_resizeImage($imgname, WWW_ROOT.'anuncios'.DIRECTORY_SEPARATOR.$publicadd->id_user.DIRECTORY_SEPARATOR.date("Y-m-d").DIRECTORY_SEPARATOR.$image['name']);
  43.             }
  44.             $publicaddimg->execute();
  45.             $this->Flash->success('Anuncio Publicado');
  46.             $this->redirect(['controller' => 'Home','action' => 'index']);
  47.         }else{
  48.             $this->Flash->error('Error al momento de guardar el registro');
  49.         }
  50.     }
  51.     $this->set('advertisements',$publicadd);
  52.     $query_categories = $this->Categories->find('list');
  53.     $this->set('categories',$query_categories);
  54.     $query_articles_states = $this->StatesArticles->find('list');
  55.     $this->set('states',$query_articles_states);
  56. }
  57. }

Todo lo hace bien el tema esta que se tarda y antes de agregar el plugin, era rápido por favor ayuda algo mas me debe de faltar
  #2 (permalink)  
Antiguo 01/03/2017, 09:11
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Mejorar tiempo para upload con imagenes

La subida de imagenes/archivos tiene mas que ver con velocidad de conexion de ambas partes y tamaño de imagen... si estas subiendo archivo de 5MB con velocidad de 1mbps de upload se tardara un tiempo prolongado de approx 1:30 mins o mas... lo mejor que puedes hacer es fijar el tamaño maximo de las imagenes que permites subir, yo te recomendaria unos 500KB para un anuncio... esta comprobacion que se haga via jQuery antes de enviar el formulario
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #3 (permalink)  
Antiguo 01/03/2017, 09:25
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años
Puntos: 2
Respuesta: Mejorar tiempo para upload con imagenes

Cita:
Iniciado por petit89 Ver Mensaje
La subida de imagenes/archivos tiene mas que ver con velocidad de conexion de ambas partes y tamaño de imagen... si estas subiendo archivo de 5MB con velocidad de 1mbps de upload se tardara un tiempo prolongado de approx 1:30 mins o mas... lo mejor que puedes hacer es fijar el tamaño maximo de las imagenes que permites subir, yo te recomendaria unos 500KB para un anuncio... esta comprobacion que se haga via jQuery antes de enviar el formulario
Gracias por tu respuesta por si lo tengo esa comprobación, el tema esta que antes de que estuviese el plugin que rota las imagenes y les establece un tamaño subia rapido cualquier imagen claro que yo solo permito subir hasta 2mb y pues lo subía rapido (que era menos de 1 minutos y menos de 10 segundos) pues creo que algo me debe de faltar.
  #4 (permalink)  
Antiguo 11/03/2017, 11:05
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Mejorar tiempo para upload con imagenes


Saludo
Si el problema es el componente nuevo a la hora de guardar,
entonces en teoría en la función publicadd si no se invoca a _resizeImage
debería guardar con la agilidad de antes, correcto?

De ser así, lo que hay que hacer es generar una marca a las imagenes nuevas
para saber que no han sido redimensionadas, y luego generar un script que se encargue
de la tarea de redimensionarlas, y actualizar la marca para saber que ya las redimensionó.

Con eso incluso mejoras el funcionamiento y el rendimiento.

__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: cake, imagenes, mejorar, tiempo, upload
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 22:51.