Ejemplo n.º 1
0
 /**
  * Upload cover image.
  * 
  * @param Request $request
  * 
  * @return AJAX
  */
 function uploadCover(Request $request)
 {
     if ($request->isMethod('POST')) {
         $rules = $this->_getCoverRules();
         $messages = $this->_getCoverMessages();
         $validator = Validator::make($request->all(), $rules, $messages);
         if ($validator->fails()) {
             return file_pong(['messages' => $validator->errors()->first()], _error(), 403);
         }
         if ($request->file('__file')->isValid()) {
             $avatar = $request->file('__file');
             $storagePath = config('frontend.coversFolder');
             $mediumSizeW = (int) config('frontend.coverMediumW');
             $mediumSizeH = (int) config('frontend.coverMediumH');
             $mediumName = generate_filename($storagePath, $avatar->getClientOriginalExtension(), ['prefix' => 'cover_', 'suffix' => "_{$mediumSizeW}x{$mediumSizeH}"]);
             $avatar->move($storagePath, $mediumName);
             $image = ImageIntervention::make($storagePath . '/' . $mediumName)->orientate();
             $image->fit($mediumSizeW, $mediumSizeH, function ($constraint) {
                 $constraint->upsize();
             });
             $image->save();
             $userProfile = user()->userProfile;
             if (is_null($userProfile)) {
                 $userProfile = new UserProfile();
                 $userProfile->user_id = user()->id;
             } else {
                 $avatarImg = unserialize($userProfile->cover_image);
                 if (isset($avatarImg[$mediumSizeW])) {
                     delete_file($storagePath . '/' . $avatarImg[$mediumSizeW]);
                 }
             }
             $userProfile->cover_image = serialize(array($mediumSizeW => $mediumName));
             $userProfile->save();
             return file_pong(['cover_medium' => $storagePath . '/' . $mediumName]);
         }
         return file_pong(['messages' => _t('opps')], _error(), 403);
     }
 }
Ejemplo n.º 2
0
 /**
  * Upload product image
  *
  * @param Illuminate\Http\Request $request
  *
  * return JSON
  */
 public function ajaxUploadProductImage(Request $request)
 {
     if ($request->isMethod('POST')) {
         $order = (int) $request->get('order');
         $rules = $this->_getProductImageRules();
         $messages = $this->_getProductImageMessages();
         $validator = Validator::make($request->all(), $rules, $messages);
         // Check does the product image's order exist
         if (!$this->_checkProductImageOrder($order)) {
             $validator->after(function ($validator) {
                 $validator->errors()->add('__product', _t('product_order_wrong'));
             });
         }
         if ($validator->fails()) {
             return file_pong(['status' => _const('AJAX_ERROR'), 'messages' => $validator->errors()->first()], 403);
         }
         try {
             $file = $request->file('__product');
             $currentImage = $request->get('current_image');
             $upload = $this->_uploadProductImage($file, $currentImage);
         } catch (Exception $ex) {
             $validator->errors()->add('__product', _t('opp'));
             return file_pong(['status' => _const('AJAX_ERROR'), 'messages' => $validator->errors()->first()], 500);
         }
         $resizes = $upload['image']->getResizes();
         return file_pong(['status' => _const('AJAX_OK'), 'messages' => _t('saved_info'), 'data' => ['original' => $upload['filename']->getName(), 'thumb' => asset($upload['temp_path'] . $resizes['thumb']), 'order' => $order]]);
     }
 }
Ejemplo n.º 3
0
 public function ajaxChangeCover(Request $request)
 {
     if ($request->isMethod('POST')) {
         $rules = $this->_getCoverRules();
         $messages = $this->_getCoverMessages();
         $validator = Validator::make($request->all(), $rules, $messages);
         if ($validator->fails()) {
             return file_pong(['status' => _const('AJAX_ERROR'), 'messages' => $validator->errors()->first()], 403);
         }
         /**
          * 1. Get file, path and info
          * 2. Generate file name
          * 3. Upload
          * 4. Resize
          * 5. Delete old cover images and upload image
          * 6. Save new info
          */
         try {
             // 1
             $store = store();
             $coverPath = config('front.cover_path');
             $file = $request->file('__file');
             // 2
             $filename = new FileName($coverPath, $file->getClientOriginalExtension());
             $filename->cover()->generate();
             $filename->setPrefix(_const('COVER_PREFIX'));
             $filename->cover()->group($this->_getCoverGroup(), true);
             // 3
             $upload = new Upload($file);
             $upload->setDirectory($coverPath)->setName($filename->getName())->move();
             // 4
             $image = new Image($coverPath . $upload->getName());
             $image->setDirectory($coverPath)->resizeGroup($filename->getGroup());
             // 5
             delete_file([$coverPath . $upload->getName(), $coverPath . $store->cover_original, $coverPath . $store->cover_big, $coverPath . $store->cover_medium, $coverPath . $store->cover_small]);
             // 5
             $resizes = $image->getResizes();
             $store->cover_original = $resizes['original'];
             $store->cover_big = $resizes['big'];
             $store->cover_medium = $resizes['medium'];
             $store->cover_small = $resizes['small'];
             $store->update();
         } catch (Exception $ex) {
             $validator->errors()->add('__file', _t('opp'));
             return file_pong(['status' => _const('AJAX_OK'), 'messages' => $validator->errors()->first()], 500);
         }
         return file_pong(['status' => _const('AJAX_OK'), 'messages' => _t('saved_info'), 'data' => ['big' => asset($coverPath . $resizes['big']), 'medium' => asset($coverPath . $resizes['medium']), 'small' => asset($coverPath . $resizes['small'])]]);
     }
 }