WordPress

Briefly unavailable for scheduled maintenance.
Check back in a some hours.
403WebShell
403Webshell
Server IP : 38.242.244.58  /  Your IP : 216.73.217.126
Web Server : Apache/2.4.41 (Ubuntu)
System : Linux vmi1486879.contaboserver.net 5.4.0-166-generic #183-Ubuntu SMP Mon Oct 2 11:28:33 UTC 2023 x86_64
User : root ( 0)
PHP Version : 7.4.3-4ubuntu2.19
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/html/sura/src/EventListener/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/sura/src/EventListener/StockUploadListener.php
<?php
namespace App\EventListener;

use App\Entity\Model;
use App\Entity\Page;
use App\Entity\StockCategory;
use App\Entity\User;
use App\Entity\StockType;
use App\Service\VideoHelper;
use Doctrine\Common\Persistence\ObjectManager;
use Doctrine\ORM\EntityManager;
use FFMpeg\Coordinate\Dimension;
use FFMpeg\Coordinate\TimeCode;
use FFMpeg\FFMpeg;
use FFMpeg\Format\Video\WebM;
use FFMpeg\Format\Video\WMV;
use FFMpeg\Format\Video\X264;
use FOS\UserBundle\Model\UserInterface;
use Intervention\Image\ImageManager;
use Oneup\UploaderBundle\Event\PostPersistEvent;
use App\Entity\Stock;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Routing\Router;


class StockUploadListener
{
    private $em;
    private $router;
    private $tokenStorage;
    private $params;
    private $videoHelper;

    /**
     * StockUploadListener constructor.
     * @param EntityManager $em
     * @param Router $router
     * @param $tokenStorage
     * @param ParameterBagInterface $parameterBag
     */
    public function __construct(EntityManager $em , Router $router, $tokenStorage,ParameterBagInterface $parameterBag,VideoHelper $videoHelper) {
        $this->em    = $em;
        $this->router    = $router;
        $this->tokenStorage    = $tokenStorage;
        $this->params = $parameterBag;
        $this->videoHelper = $videoHelper;

    }
    public function onUpload(PostPersistEvent $event)
    {
        if($event->getType()=='stock'){
            /** @var User $user */
            $user= $this->tokenStorage->getToken()->getUser();
            $videoMimes = [
                "video/x-flv", "video/mp4", "video/3gpp",
            ];
            /** @var \Symfony\Component\HttpFoundation\File\File $file */
            $file=$event->getFile();
            $filesystem = new Filesystem();
            $fileName = $file->getFilename();
            $fileMime = $file->getMimeType();
            $uploads_directory = $this->params->get('uploads_directory');
            $target_file = $uploads_directory.$user->getFtpUser()->getUserid().DIRECTORY_SEPARATOR.$fileName;

            $filesystem->copy($file->getPathname(), $target_file,true);


            if (in_array($fileMime, $videoMimes)){

                $extension = $file->getExtension();
                //dump($extension); die;
                $gifName = str_replace($extension,"gif",$fileName);
                $ffmpeg = FFMpeg::create();
                try{
                    //reject low re
                    $metadata = $this->videoHelper->fetchVideoMetaData($target_file);

                    $resolution = $metadata['resolution'];
                    $width = (double)$metadata['width'];
                    $height = $metadata['height'];

                    $thumb_width = 400;
                    $thumb_height = number_format(($height * $thumb_width/$width),0);

                    if ($width < 720){
                        //delete
                        if (is_file($target_file)){
                            $filesystem->remove($target_file);
                        }
                    }else{
                        $video = $ffmpeg->open($target_file);

                    $clip = $video
                        ->gif(TimeCode::fromSeconds(3),new Dimension($thumb_width, $thumb_height), 5);
                    $clip->save($uploads_directory.$user->getFtpUser()->getUserid().DIRECTORY_SEPARATOR.$gifName);
//                        $clip = $video
//                            ->gif(TimeCode::fromSeconds(3),new Dimension($thumb_width, $thumb_height), 5);
//                        $clip->save($user->getFtpUser()->getHomedir().DIRECTORY_SEPARATOR.$gifName);
                    }

                }catch (\Exception $e){
                    dump("exception: ". $e->getMessage());
                }
            }
            else{
                //image
                $thumbLocation = $uploads_directory.$user->getFtpUser()->getUserid().DIRECTORY_SEPARATOR.Stock::IMAGE_THUMBS_DIR;

                if(!is_dir($thumbLocation)){
                    mkdir($thumbLocation,0777);
                }

                $manager = new ImageManager();
                $thumbImage = $manager->make($target_file);
                $thumbImage->resize(null,400, function ($constraint){
                    $constraint->aspectRatio();
                })->save($thumbLocation.DIRECTORY_SEPARATOR.$fileName);
            }
            $filesystem->remove($file->getPathname());
            $response = $event->getResponse();
            $response['success'] = true;
            return $response;
        }

    }


}

Youez - 2016 - github.com/yon3zu
LinuXploit