Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/wp-file-.../lib/php
File: elFinder.class.php
$this->uploadDebug = 'Upload error: unable open tmp file';
[3500] Fix | Delete
if (!is_uploaded_file($tmpname)) {
[3501] Fix | Delete
if (unlink($tmpname) && $tmpfname) unset($GLOBALS['elFinderTempFiles'][$tmpfname]);
[3502] Fix | Delete
continue;
[3503] Fix | Delete
}
[3504] Fix | Delete
break;
[3505] Fix | Delete
}
[3506] Fix | Delete
$rnres = array();
[3507] Fix | Delete
if ($thash !== '' && $thash !== $target) {
[3508] Fix | Delete
if ($dir = $volume->dir($thash)) {
[3509] Fix | Delete
$_target = $thash;
[3510] Fix | Delete
if (!isset($addedDirs[$thash])) {
[3511] Fix | Delete
$addedDirs[$thash] = true;
[3512] Fix | Delete
$result['added'][] = $dir;
[3513] Fix | Delete
// to support multi-level directory creation
[3514] Fix | Delete
$_phash = isset($dir['phash']) ? $dir['phash'] : null;
[3515] Fix | Delete
while ($_phash && !isset($addedDirs[$_phash]) && $_phash !== $target) {
[3516] Fix | Delete
if ($_dir = $volume->dir($_phash)) {
[3517] Fix | Delete
$addedDirs[$_phash] = true;
[3518] Fix | Delete
$result['added'][] = $_dir;
[3519] Fix | Delete
$_phash = isset($_dir['phash']) ? $_dir['phash'] : null;
[3520] Fix | Delete
} else {
[3521] Fix | Delete
break;
[3522] Fix | Delete
}
[3523] Fix | Delete
}
[3524] Fix | Delete
}
[3525] Fix | Delete
} else {
[3526] Fix | Delete
$result['error'] = $this->error(self::ERROR_UPLOAD, self::ERROR_TRGDIR_NOT_FOUND, 'hash@' . $thash);
[3527] Fix | Delete
break;
[3528] Fix | Delete
}
[3529] Fix | Delete
} else {
[3530] Fix | Delete
$_target = $target;
[3531] Fix | Delete
// file rename for backup
[3532] Fix | Delete
if (isset($renames[$name])) {
[3533] Fix | Delete
$dir = $volume->realpath($_target);
[3534] Fix | Delete
if (isset($hashes[$name])) {
[3535] Fix | Delete
$hash = $hashes[$name];
[3536] Fix | Delete
} else {
[3537] Fix | Delete
$hash = $volume->getHash($dir, $name);
[3538] Fix | Delete
}
[3539] Fix | Delete
$rnres = $this->rename(array('target' => $hash, 'name' => $volume->uniqueName($dir, $name, $suffix, true, 0)));
[3540] Fix | Delete
if (!empty($rnres['error'])) {
[3541] Fix | Delete
$result['warning'] = $rnres['error'];
[3542] Fix | Delete
if (!is_array($rnres['error'])) {
[3543] Fix | Delete
$errors = array_push($errors, $rnres['error']);
[3544] Fix | Delete
} else {
[3545] Fix | Delete
$errors = array_merge($errors, $rnres['error']);
[3546] Fix | Delete
}
[3547] Fix | Delete
continue;
[3548] Fix | Delete
}
[3549] Fix | Delete
}
[3550] Fix | Delete
}
[3551] Fix | Delete
if (!$_target || ($file = $volume->upload($fp, $_target, $name, $tmpname, ($_target === $target) ? $hashes : array())) === false) {
[3552] Fix | Delete
$errors = array_merge($errors, $this->error(self::ERROR_UPLOAD_FILE, $name, $volume->error()));
[3553] Fix | Delete
fclose($fp);
[3554] Fix | Delete
if (!is_uploaded_file($tmpname) && unlink($tmpname)) {
[3555] Fix | Delete
unset($GLOBALS['elFinderTempFiles'][$tmpname]);
[3556] Fix | Delete
}
[3557] Fix | Delete
continue;
[3558] Fix | Delete
}
[3559] Fix | Delete
[3560] Fix | Delete
is_resource($fp) && fclose($fp);
[3561] Fix | Delete
if (!is_uploaded_file($tmpname)) {
[3562] Fix | Delete
clearstatcache();
[3563] Fix | Delete
if (!is_file($tmpname) || unlink($tmpname)) {
[3564] Fix | Delete
unset($GLOBALS['elFinderTempFiles'][$tmpname]);
[3565] Fix | Delete
}
[3566] Fix | Delete
}
[3567] Fix | Delete
$result['added'][] = $file;
[3568] Fix | Delete
if ($rnres) {
[3569] Fix | Delete
$result = array_merge_recursive($result, $rnres);
[3570] Fix | Delete
}
[3571] Fix | Delete
}
[3572] Fix | Delete
[3573] Fix | Delete
if ($errors) {
[3574] Fix | Delete
$result['warning'] = $errors;
[3575] Fix | Delete
}
[3576] Fix | Delete
[3577] Fix | Delete
if ($GLOBALS['elFinderTempFiles']) {
[3578] Fix | Delete
foreach (array_keys($GLOBALS['elFinderTempFiles']) as $_temp) {
[3579] Fix | Delete
is_file($_temp) && is_writable($_temp) && unlink($_temp);
[3580] Fix | Delete
}
[3581] Fix | Delete
}
[3582] Fix | Delete
$result['removed'] = $volume->removed();
[3583] Fix | Delete
[3584] Fix | Delete
if (!empty($args['node'])) {
[3585] Fix | Delete
$result['callback'] = array(
[3586] Fix | Delete
'node' => $args['node'],
[3587] Fix | Delete
'bind' => 'upload'
[3588] Fix | Delete
);
[3589] Fix | Delete
}
[3590] Fix | Delete
return $result;
[3591] Fix | Delete
}
[3592] Fix | Delete
[3593] Fix | Delete
/**
[3594] Fix | Delete
* Copy/move files into new destination
[3595] Fix | Delete
*
[3596] Fix | Delete
* @param array command arguments
[3597] Fix | Delete
*
[3598] Fix | Delete
* @return array
[3599] Fix | Delete
* @throws elFinderAbortException
[3600] Fix | Delete
* @author Dmitry (dio) Levashov
[3601] Fix | Delete
*/
[3602] Fix | Delete
protected function paste($args)
[3603] Fix | Delete
{
[3604] Fix | Delete
$dst = $args['dst'];
[3605] Fix | Delete
$targets = is_array($args['targets']) ? $args['targets'] : array();
[3606] Fix | Delete
$cut = !empty($args['cut']);
[3607] Fix | Delete
$error = $cut ? self::ERROR_MOVE : self::ERROR_COPY;
[3608] Fix | Delete
$result = array('changed' => array(), 'added' => array(), 'removed' => array(), 'warning' => array());
[3609] Fix | Delete
[3610] Fix | Delete
if (($dstVolume = $this->volume($dst)) == false) {
[3611] Fix | Delete
return array('error' => $this->error($error, '#' . $targets[0], self::ERROR_TRGDIR_NOT_FOUND, '#' . $dst));
[3612] Fix | Delete
}
[3613] Fix | Delete
[3614] Fix | Delete
$this->itemLock($dst);
[3615] Fix | Delete
[3616] Fix | Delete
$hashes = $renames = array();
[3617] Fix | Delete
$suffix = '~';
[3618] Fix | Delete
if (!empty($args['renames'])) {
[3619] Fix | Delete
$renames = array_flip($args['renames']);
[3620] Fix | Delete
if (is_string($args['suffix']) && !preg_match('/[\/\\?*:|"<>]/', $args['suffix'])) {
[3621] Fix | Delete
$suffix = $args['suffix'];
[3622] Fix | Delete
}
[3623] Fix | Delete
}
[3624] Fix | Delete
if (!empty($args['hashes'])) {
[3625] Fix | Delete
$hashes = array_flip($args['hashes']);
[3626] Fix | Delete
}
[3627] Fix | Delete
[3628] Fix | Delete
foreach ($targets as $target) {
[3629] Fix | Delete
elFinder::checkAborted();
[3630] Fix | Delete
[3631] Fix | Delete
if (($srcVolume = $this->volume($target)) == false) {
[3632] Fix | Delete
$result['warning'] = array_merge($result['warning'], $this->error($error, '#' . $target, self::ERROR_FILE_NOT_FOUND));
[3633] Fix | Delete
continue;
[3634] Fix | Delete
}
[3635] Fix | Delete
[3636] Fix | Delete
$rnres = array();
[3637] Fix | Delete
if ($renames) {
[3638] Fix | Delete
$file = $srcVolume->file($target);
[3639] Fix | Delete
if (isset($renames[$file['name']])) {
[3640] Fix | Delete
$dir = $dstVolume->realpath($dst);
[3641] Fix | Delete
$dstName = $file['name'];
[3642] Fix | Delete
if ($srcVolume !== $dstVolume) {
[3643] Fix | Delete
$errors = array();
[3644] Fix | Delete
try {
[3645] Fix | Delete
$this->trigger('paste.copyfrom', array(&$dst, &$dstName, '', $this, $dstVolume), $errors);
[3646] Fix | Delete
} catch (elFinderTriggerException $e) {
[3647] Fix | Delete
$result['warning'] = array_merge($result['warning'], $errors);
[3648] Fix | Delete
continue;
[3649] Fix | Delete
}
[3650] Fix | Delete
}
[3651] Fix | Delete
if (isset($hashes[$file['name']])) {
[3652] Fix | Delete
$hash = $hashes[$file['name']];
[3653] Fix | Delete
} else {
[3654] Fix | Delete
$hash = $dstVolume->getHash($dir, $dstName);
[3655] Fix | Delete
}
[3656] Fix | Delete
$rnres = $this->rename(array('target' => $hash, 'name' => $dstVolume->uniqueName($dir, $dstName, $suffix, true, 0)));
[3657] Fix | Delete
if (!empty($rnres['error'])) {
[3658] Fix | Delete
$result['warning'] = array_merge($result['warning'], $rnres['error']);
[3659] Fix | Delete
continue;
[3660] Fix | Delete
}
[3661] Fix | Delete
}
[3662] Fix | Delete
}
[3663] Fix | Delete
[3664] Fix | Delete
if ($cut && $this->itemLocked($target)) {
[3665] Fix | Delete
$rm = $srcVolume->file($target);
[3666] Fix | Delete
$result['warning'] = array_merge($result['warning'], $this->error(self::ERROR_LOCKED, $rm['name']));
[3667] Fix | Delete
continue;
[3668] Fix | Delete
}
[3669] Fix | Delete
[3670] Fix | Delete
if (($file = $dstVolume->paste($srcVolume, $target, $dst, $cut, $hashes)) == false) {
[3671] Fix | Delete
$result['warning'] = array_merge($result['warning'], $this->error($dstVolume->error()));
[3672] Fix | Delete
continue;
[3673] Fix | Delete
}
[3674] Fix | Delete
[3675] Fix | Delete
if ($error = $dstVolume->error()) {
[3676] Fix | Delete
$result['warning'] = array_merge($result['warning'], $this->error($error));
[3677] Fix | Delete
}
[3678] Fix | Delete
[3679] Fix | Delete
if ($rnres) {
[3680] Fix | Delete
$result = array_merge_recursive($result, $rnres);
[3681] Fix | Delete
}
[3682] Fix | Delete
}
[3683] Fix | Delete
if (count($result['warning']) < 1) {
[3684] Fix | Delete
unset($result['warning']);
[3685] Fix | Delete
} else {
[3686] Fix | Delete
$result['sync'] = true;
[3687] Fix | Delete
}
[3688] Fix | Delete
[3689] Fix | Delete
return $result;
[3690] Fix | Delete
}
[3691] Fix | Delete
[3692] Fix | Delete
/**
[3693] Fix | Delete
* Return file content
[3694] Fix | Delete
*
[3695] Fix | Delete
* @param array $args command arguments
[3696] Fix | Delete
*
[3697] Fix | Delete
* @return array
[3698] Fix | Delete
* @author Dmitry (dio) Levashov
[3699] Fix | Delete
**/
[3700] Fix | Delete
protected function get($args)
[3701] Fix | Delete
{
[3702] Fix | Delete
$target = $args['target'];
[3703] Fix | Delete
$volume = $this->volume($target);
[3704] Fix | Delete
$enc = false;
[3705] Fix | Delete
[3706] Fix | Delete
if (!$volume || ($file = $volume->file($target)) == false) {
[3707] Fix | Delete
return array('error' => $this->error(self::ERROR_OPEN, '#' . $target, self::ERROR_FILE_NOT_FOUND));
[3708] Fix | Delete
}
[3709] Fix | Delete
[3710] Fix | Delete
if ($volume->commandDisabled('get')) {
[3711] Fix | Delete
return array('error' => $this->error(self::ERROR_OPEN, '#' . $target, self::ERROR_ACCESS_DENIED));
[3712] Fix | Delete
}
[3713] Fix | Delete
[3714] Fix | Delete
if (($content = $volume->getContents($target)) === false) {
[3715] Fix | Delete
return array('error' => $this->error(self::ERROR_OPEN, $volume->path($target), $volume->error()));
[3716] Fix | Delete
}
[3717] Fix | Delete
[3718] Fix | Delete
$mime = isset($file['mime']) ? $file['mime'] : '';
[3719] Fix | Delete
if ($mime && (strtolower(substr($mime, 0, 4)) === 'text' || in_array(strtolower($mime), self::$textMimes))) {
[3720] Fix | Delete
$enc = '';
[3721] Fix | Delete
if ($content !== '') {
[3722] Fix | Delete
if (!$args['conv'] || $args['conv'] == '1') {
[3723] Fix | Delete
// detect encoding
[3724] Fix | Delete
if (function_exists('mb_detect_encoding')) {
[3725] Fix | Delete
if ($enc = mb_detect_encoding($content, mb_detect_order(), true)) {
[3726] Fix | Delete
$encu = strtoupper($enc);
[3727] Fix | Delete
if ($encu === 'UTF-8' || $encu === 'ASCII') {
[3728] Fix | Delete
$enc = '';
[3729] Fix | Delete
}
[3730] Fix | Delete
} else {
[3731] Fix | Delete
$enc = 'unknown';
[3732] Fix | Delete
}
[3733] Fix | Delete
} else if (!preg_match('//u', $content)) {
[3734] Fix | Delete
$enc = 'unknown';
[3735] Fix | Delete
}
[3736] Fix | Delete
if ($enc === 'unknown') {
[3737] Fix | Delete
$enc = $volume->getOption('encoding');
[3738] Fix | Delete
if (!$enc || strtoupper($enc) === 'UTF-8') {
[3739] Fix | Delete
$enc = 'unknown';
[3740] Fix | Delete
}
[3741] Fix | Delete
}
[3742] Fix | Delete
// call callbacks 'get.detectencoding'
[3743] Fix | Delete
if (!empty($this->listeners['get.detectencoding'])) {
[3744] Fix | Delete
foreach ($this->listeners['get.detectencoding'] as $handler) {
[3745] Fix | Delete
call_user_func_array($handler, array('get', &$enc, array_merge($args, array('content' => $content)), $this, $volume));
[3746] Fix | Delete
}
[3747] Fix | Delete
}
[3748] Fix | Delete
if ($enc && $enc !== 'unknown') {
[3749] Fix | Delete
$errlev = error_reporting();
[3750] Fix | Delete
error_reporting($errlev ^ E_NOTICE);
[3751] Fix | Delete
$utf8 = iconv($enc, 'UTF-8', $content);
[3752] Fix | Delete
if ($utf8 === false && function_exists('mb_convert_encoding')) {
[3753] Fix | Delete
error_reporting($errlev ^ E_WARNING);
[3754] Fix | Delete
$utf8 = mb_convert_encoding($content, 'UTF-8', $enc);
[3755] Fix | Delete
if (mb_convert_encoding($utf8, $enc, 'UTF-8') !== $content) {
[3756] Fix | Delete
$enc = 'unknown';
[3757] Fix | Delete
}
[3758] Fix | Delete
} else {
[3759] Fix | Delete
if ($utf8 === false || iconv('UTF-8', $enc, $utf8) !== $content) {
[3760] Fix | Delete
$enc = 'unknown';
[3761] Fix | Delete
}
[3762] Fix | Delete
}
[3763] Fix | Delete
error_reporting($errlev);
[3764] Fix | Delete
if ($enc !== 'unknown') {
[3765] Fix | Delete
$content = $utf8;
[3766] Fix | Delete
}
[3767] Fix | Delete
}
[3768] Fix | Delete
if ($enc) {
[3769] Fix | Delete
if ($args['conv'] == '1') {
[3770] Fix | Delete
$args['conv'] = '';
[3771] Fix | Delete
if ($enc === 'unknown') {
[3772] Fix | Delete
$content = false;
[3773] Fix | Delete
}
[3774] Fix | Delete
} else if ($enc === 'unknown') {
[3775] Fix | Delete
return array('doconv' => $enc);
[3776] Fix | Delete
}
[3777] Fix | Delete
}
[3778] Fix | Delete
if ($args['conv'] == '1') {
[3779] Fix | Delete
$args['conv'] = '';
[3780] Fix | Delete
}
[3781] Fix | Delete
}
[3782] Fix | Delete
if ($args['conv']) {
[3783] Fix | Delete
$enc = $args['conv'];
[3784] Fix | Delete
if (strtoupper($enc) !== 'UTF-8') {
[3785] Fix | Delete
$_content = $content;
[3786] Fix | Delete
$errlev = error_reporting();
[3787] Fix | Delete
$this->setToastErrorHandler(array(
[3788] Fix | Delete
'prefix' => 'Notice: '
[3789] Fix | Delete
));
[3790] Fix | Delete
error_reporting($errlev | E_NOTICE | E_WARNING);
[3791] Fix | Delete
$content = iconv($enc, 'UTF-8//TRANSLIT', $content);
[3792] Fix | Delete
if ($content === false && function_exists('mb_convert_encoding')) {
[3793] Fix | Delete
$content = mb_convert_encoding($_content, 'UTF-8', $enc);
[3794] Fix | Delete
}
[3795] Fix | Delete
error_reporting($errlev);
[3796] Fix | Delete
$this->setToastErrorHandler(false);
[3797] Fix | Delete
} else {
[3798] Fix | Delete
$enc = '';
[3799] Fix | Delete
}
[3800] Fix | Delete
}
[3801] Fix | Delete
}
[3802] Fix | Delete
} else {
[3803] Fix | Delete
$content = 'data:' . ($mime ? $mime : 'application/octet-stream') . ';base64,' . base64_encode($content);
[3804] Fix | Delete
}
[3805] Fix | Delete
[3806] Fix | Delete
if ($enc !== false) {
[3807] Fix | Delete
$json = false;
[3808] Fix | Delete
if ($content !== false) {
[3809] Fix | Delete
$json = json_encode($content);
[3810] Fix | Delete
}
[3811] Fix | Delete
if ($content === false || $json === false || strlen($json) < strlen($content)) {
[3812] Fix | Delete
return array('doconv' => 'unknown');
[3813] Fix | Delete
}
[3814] Fix | Delete
}
[3815] Fix | Delete
[3816] Fix | Delete
$res = array(
[3817] Fix | Delete
'header' => array(
[3818] Fix | Delete
'Content-Type: application/json'
[3819] Fix | Delete
),
[3820] Fix | Delete
'content' => $content
[3821] Fix | Delete
);
[3822] Fix | Delete
[3823] Fix | Delete
// add cache control headers
[3824] Fix | Delete
if ($cacheHeaders = $volume->getOption('cacheHeaders')) {
[3825] Fix | Delete
$res['header'] = array_merge($res['header'], $cacheHeaders);
[3826] Fix | Delete
}
[3827] Fix | Delete
[3828] Fix | Delete
if ($enc) {
[3829] Fix | Delete
$res['encoding'] = $enc;
[3830] Fix | Delete
}
[3831] Fix | Delete
return $res;
[3832] Fix | Delete
}
[3833] Fix | Delete
[3834] Fix | Delete
/**
[3835] Fix | Delete
* Save content into text file
[3836] Fix | Delete
*
[3837] Fix | Delete
* @param $args
[3838] Fix | Delete
*
[3839] Fix | Delete
* @return array
[3840] Fix | Delete
* @author Dmitry (dio) Levashov
[3841] Fix | Delete
*/
[3842] Fix | Delete
protected function put($args)
[3843] Fix | Delete
{
[3844] Fix | Delete
$target = $args['target'];
[3845] Fix | Delete
$encoding = isset($args['encoding']) ? $args['encoding'] : '';
[3846] Fix | Delete
[3847] Fix | Delete
if (($volume = $this->volume($target)) == false
[3848] Fix | Delete
|| ($file = $volume->file($target)) == false) {
[3849] Fix | Delete
return array('error' => $this->error(self::ERROR_SAVE, '#' . $target, self::ERROR_FILE_NOT_FOUND));
[3850] Fix | Delete
}
[3851] Fix | Delete
[3852] Fix | Delete
$this->itemLock($target);
[3853] Fix | Delete
[3854] Fix | Delete
if ($encoding === 'scheme') {
[3855] Fix | Delete
if (preg_match('~^https?://~i', $args['content'])) {
[3856] Fix | Delete
/** @var resource $fp */
[3857] Fix | Delete
$fp = $this->get_remote_contents($args['content'], 30, 5, 'Mozilla/5.0', $volume->tmpfile());
[3858] Fix | Delete
if (!$fp) {
[3859] Fix | Delete
return array('error' => self::ERROR_SAVE, $args['content'], self::ERROR_FILE_NOT_FOUND);
[3860] Fix | Delete
}
[3861] Fix | Delete
$fmeta = stream_get_meta_data($fp);
[3862] Fix | Delete
$mime = $this->detectMimeType($fmeta['uri']);
[3863] Fix | Delete
if ($mime === 'unknown') {
[3864] Fix | Delete
$mime = 'application/octet-stream';
[3865] Fix | Delete
}
[3866] Fix | Delete
$mime = $volume->mimeTypeNormalize($mime, $file['name']);
[3867] Fix | Delete
$args['content'] = 'data:' . $mime . ';base64,' . base64_encode(file_get_contents($fmeta['uri']));
[3868] Fix | Delete
}
[3869] Fix | Delete
$encoding = '';
[3870] Fix | Delete
$args['content'] = "\0" . $args['content'];
[3871] Fix | Delete
} else if ($encoding === 'hash') {
[3872] Fix | Delete
$_hash = $args['content'];
[3873] Fix | Delete
if ($_src = $this->getVolume($_hash)) {
[3874] Fix | Delete
if ($_file = $_src->file($_hash)) {
[3875] Fix | Delete
if ($_data = $_src->getContents($_hash)) {
[3876] Fix | Delete
$args['content'] = 'data:' . $file['mime'] . ';base64,' . base64_encode($_data);
[3877] Fix | Delete
}
[3878] Fix | Delete
}
[3879] Fix | Delete
}
[3880] Fix | Delete
$encoding = '';
[3881] Fix | Delete
$args['content'] = "\0" . $args['content'];
[3882] Fix | Delete
}
[3883] Fix | Delete
if ($encoding) {
[3884] Fix | Delete
$content = iconv('UTF-8', $encoding, $args['content']);
[3885] Fix | Delete
if ($content === false && function_exists('mb_detect_encoding')) {
[3886] Fix | Delete
$content = mb_convert_encoding($args['content'], $encoding, 'UTF-8');
[3887] Fix | Delete
}
[3888] Fix | Delete
if ($content !== false) {
[3889] Fix | Delete
$args['content'] = $content;
[3890] Fix | Delete
}
[3891] Fix | Delete
}
[3892] Fix | Delete
if (($file = $volume->putContents($target, $args['content'])) == false) {
[3893] Fix | Delete
return array('error' => $this->error(self::ERROR_SAVE, $volume->path($target), $volume->error()));
[3894] Fix | Delete
}
[3895] Fix | Delete
[3896] Fix | Delete
return array('changed' => array($file));
[3897] Fix | Delete
}
[3898] Fix | Delete
[3899] Fix | Delete
/**
[3900] Fix | Delete
* Extract files from archive
[3901] Fix | Delete
*
[3902] Fix | Delete
* @param array $args command arguments
[3903] Fix | Delete
*
[3904] Fix | Delete
* @return array
[3905] Fix | Delete
* @author Dmitry (dio) Levashov,
[3906] Fix | Delete
* @author Alexey Sukhotin
[3907] Fix | Delete
**/
[3908] Fix | Delete
protected function extract($args)
[3909] Fix | Delete
{
[3910] Fix | Delete
$target = $args['target'];
[3911] Fix | Delete
$makedir = isset($args['makedir']) ? (bool)$args['makedir'] : null;
[3912] Fix | Delete
[3913] Fix | Delete
if(strpos($target,'..') !== false){
[3914] Fix | Delete
return array('error' => $this->error(self::ERROR_EXTRACT, '#' . $target, self::ERROR_FILE_NOT_FOUND));
[3915] Fix | Delete
}
[3916] Fix | Delete
[3917] Fix | Delete
if (($volume = $this->volume($target)) == false
[3918] Fix | Delete
|| ($file = $volume->file($target)) == false) {
[3919] Fix | Delete
return array('error' => $this->error(self::ERROR_EXTRACT, '#' . $target, self::ERROR_FILE_NOT_FOUND));
[3920] Fix | Delete
}
[3921] Fix | Delete
[3922] Fix | Delete
$res = array();
[3923] Fix | Delete
if ($file = $volume->extract($target, $makedir)) {
[3924] Fix | Delete
$res['added'] = isset($file['read']) ? array($file) : $file;
[3925] Fix | Delete
if ($err = $volume->error()) {
[3926] Fix | Delete
$res['warning'] = $err;
[3927] Fix | Delete
}
[3928] Fix | Delete
} else {
[3929] Fix | Delete
$res['error'] = $this->error(self::ERROR_EXTRACT, $volume->path($target), $volume->error());
[3930] Fix | Delete
}
[3931] Fix | Delete
return $res;
[3932] Fix | Delete
}
[3933] Fix | Delete
[3934] Fix | Delete
/**
[3935] Fix | Delete
* Create archive
[3936] Fix | Delete
*
[3937] Fix | Delete
* @param array $args command arguments
[3938] Fix | Delete
*
[3939] Fix | Delete
* @return array
[3940] Fix | Delete
* @throws Exception
[3941] Fix | Delete
* @author Dmitry (dio) Levashov,
[3942] Fix | Delete
* @author Alexey Sukhotin
[3943] Fix | Delete
*/
[3944] Fix | Delete
protected function archive($args)
[3945] Fix | Delete
{
[3946] Fix | Delete
$targets = isset($args['targets']) && is_array($args['targets']) ? $args['targets'] : array();
[3947] Fix | Delete
$name = isset($args['name']) ? $args['name'] : '';
[3948] Fix | Delete
[3949] Fix | Delete
if(strpos($name,'..') !== false){
[3950] Fix | Delete
return $this->error('Invalid Request.', self::ERROR_TRGDIR_NOT_FOUND);
[3951] Fix | Delete
}
[3952] Fix | Delete
[3953] Fix | Delete
$targets = array_filter($targets, array($this, 'volume'));
[3954] Fix | Delete
if (!$targets || ($volume = $this->volume($targets[0])) === false) {
[3955] Fix | Delete
return $this->error(self::ERROR_ARCHIVE, self::ERROR_TRGDIR_NOT_FOUND);
[3956] Fix | Delete
}
[3957] Fix | Delete
[3958] Fix | Delete
foreach ($targets as $target) {
[3959] Fix | Delete
$explodedStr = explode('l1_', $target);
[3960] Fix | Delete
$targetFolderName = base64_decode($explodedStr[1]);
[3961] Fix | Delete
if(strpos($targetFolderName,'..') !== false){
[3962] Fix | Delete
return $this->error('Invalid Request.', self::ERROR_TRGDIR_NOT_FOUND);
[3963] Fix | Delete
}
[3964] Fix | Delete
$this->itemLock($target);
[3965] Fix | Delete
}
[3966] Fix | Delete
[3967] Fix | Delete
return ($file = $volume->archive($targets, $args['type'], $name))
[3968] Fix | Delete
? array('added' => array($file))
[3969] Fix | Delete
: array('error' => $this->error(self::ERROR_ARCHIVE, $volume->error()));
[3970] Fix | Delete
}
[3971] Fix | Delete
[3972] Fix | Delete
/**
[3973] Fix | Delete
* Search files
[3974] Fix | Delete
*
[3975] Fix | Delete
* @param array $args command arguments
[3976] Fix | Delete
*
[3977] Fix | Delete
* @return array
[3978] Fix | Delete
* @throws elFinderAbortException
[3979] Fix | Delete
* @author Dmitry Levashov
[3980] Fix | Delete
*/
[3981] Fix | Delete
protected function search($args)
[3982] Fix | Delete
{
[3983] Fix | Delete
$q = trim($args['q']);
[3984] Fix | Delete
$mimes = !empty($args['mimes']) && is_array($args['mimes']) ? $args['mimes'] : array();
[3985] Fix | Delete
$target = !empty($args['target']) ? $args['target'] : null;
[3986] Fix | Delete
$type = !empty($args['type']) ? $args['type'] : null;
[3987] Fix | Delete
$result = array();
[3988] Fix | Delete
$errors = array();
[3989] Fix | Delete
[3990] Fix | Delete
if ($target) {
[3991] Fix | Delete
if ($volume = $this->volume($target)) {
[3992] Fix | Delete
$result = $volume->search($q, $mimes, $target, $type);
[3993] Fix | Delete
$errors = array_merge($errors, $volume->error());
[3994] Fix | Delete
}
[3995] Fix | Delete
} else {
[3996] Fix | Delete
foreach ($this->volumes as $volume) {
[3997] Fix | Delete
$result = array_merge($result, $volume->search($q, $mimes, null, $type));
[3998] Fix | Delete
$errors = array_merge($errors, $volume->error());
[3999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function