Composer/ScriptHandler.php
public static function symlinkJQueryFileUpload(Event $event)
    {
        $IO = $event->getIO();
        $composer = $event->getComposer();
        $cmanager = new ComposerPathFinder($composer);
        $ds = DIRECTORY_SEPARATOR;
        $options = [
            'targetSuffix' => self::getTargetSuffix('jquery-file-upload'),
            'sourcePrefix' => "..{$ds}..{$ds}..{$ds}",
        ];
        list($symlinkTarget, $symlinkName) = $cmanager->getSymlinkFromComposer(
            'sidus/file-upload-bundle',
            'blueimp/jquery-file-upload',
            $options
        );

        $IO->write('Checking Symlink', false);
        if (false === self::checkSymlink($symlinkTarget, $symlinkName, true)) {
            $IO->write('Creating Symlink: '.$symlinkName, false);
            self::createSymlink($symlinkTarget, $symlinkName);
        }
        $IO->write('<info>OK</info>');
    }
public static function symlinkJQueryFileUpload(Event $event)
    {
        $IO = $event->getIO();
        $composer = $event->getComposer();
        $cmanager = new ComposerPathFinder($composer);
        $ds = DIRECTORY_SEPARATOR;
        $options = [
            'targetSuffix' => self::getTargetSuffix('jquery-file-upload'),
            'sourcePrefix' => "..{$ds}..{$ds}..{$ds}",
        ];
        list($symlinkTarget, $symlinkName) = $cmanager->getSymlinkFromComposer(
            'sidus/file-upload-bundle',
            'blueimp/jquery-file-upload',
            $options
        );

        $IO->write('Checking Symlink', false);
        if (false === self::checkSymlink($symlinkTarget, $symlinkName, true)) {
            $IO->write('Creating Symlink: '.$symlinkName, false);
            self::createSymlink($symlinkTarget, $symlinkName);
        }
        $IO->write('<info>OK</info>');
    }
Symlink JQuery File Upload plugin in the public directory

@param Event $event

@throws \Exception