Адаптивные проблемы с загрузкой файлового менеджера

Недавно я запускал Responsive File Manager, как на своем локальном компьютере, так и на размещенном сервере, и получил разные проблемы для каждого, несмотря на то, что код один и тот же. Все эти проблемы связаны с загрузкой файлов — в настоящее время все протестированные файлы представляют собой только файлы JPEG, где файлы JPEG размером более 2 МБ не могут быть загружены.

Общие проблемы:

Для обеих локальных машин & размещенный сервер, если загруженное изображение превышает 8 МБ, я получаю следующее сообщение об ошибке:

The uploaded file exceeeds the max size allowed.

Проблемы с локальной машиной:

Только для локального компьютера, если загруженный образ больше 2 МБ, но меньше 8 МБ, я получаю следующее сообщение об ошибке:

Warning: mime_content_type(): Empty filename or path in C:\xampp\htdocs\project\webroot\3rdparty\responsive file manager\filemanager\upload.php on line 92.

где строка 92 относится к этой конкретной строке в наборе операторов if:

if ( ! empty($_FILES) || isset($_POST['url']))
{
if(isset($_POST['url'])){
$temp = tempnam('/tmp','RF');
$handle = fopen($temp, "w");
fwrite($handle, file_get_contents($_POST['url']));
fclose($handle);
$_FILES['file']= array(
'name' => basename($_POST['url']),
'tmp_name' => $temp,
'size' => filesize($temp),
'type' => explode(".", strtolower($temp))
);
}

$info = pathinfo($_FILES['file']['name']);
$mime_type = $_FILES['file']['type'];
if (function_exists('mime_content_type')){
$mime_type = mime_content_type($_FILES['file']['tmp_name']); //line 92
}
}

Я также получаю эту ошибку, а также:

File extension is not allowed. (@C:\xampp\htdocs\project\webroot\3rdparty\responsive file manager\filemanager\upload.php#260)

который относится к этому набору операторов if:

if ( ! empty($_FILES) || isset($_POST['url']))
{
else // file ext. is not in the allowed list
{
response(trans("Error_extension").AddErrorLocation(), 406)->send(); //line 260

exit();
}
}

Проблемы с сервером:

На сервере эти две проблемы заменены этой единственной ошибкой:

Not enough Memory
(@/home/site/public_html/webroot/3rdparty/responsive file manager/filemanager.upload.php#241)

который относится к этому набору операторов if:

if ( ! empty($_FILES) || isset($_POST['url']))
{
if (in_array(fix_strtolower($extension), $ext))
{
if ($is_img)
{
$memory_error = FALSE;
if ( $extension != 'svg' && !create_img($targetFile, $targetFileThumb, 122, 91))
{
$memory_error = TRUE;
}
// not enough memory
if ($memory_error)
{
unlink($targetFile);
response(trans("Not enought Memory").AddErrorLocation(), 406)->send(); //line 241
exit();
}
}
}
}

Попытки пока:

Я посмотрел на следующее:

  • С проблемой расширений файлов на моем локальном компьютере я проверил допустимые расширения файлов в файле config.php, но оба формата jpeg уже были там:

'ext_img' => array( 'jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff', 'svg' ), //Images

Между тем в include \ mime_type_lib.php оба формата jpeg уже были:

$mime_types = array(
'jpeg'    => 'image/jpeg',
'jpg'     => 'image/jpeg',
)
  • На моей локальной машине я увеличил upload_max_filesize до 128М. Тем временем на сервере я использовал настройки PHP cPanel, чтобы сделать то же самое. Кроме того, в файле config.php я изменил параметр MaxSizeUpload, чтобы соответствовать вышеуказанным изменениям следующим образом:

'MaxSizeUpload' => 128,

  • Я также проверил последнюю версию config.php и upload.php, чтобы убедиться, что мои версии устарели, но это не так.

1

Решение

Попробуй это:

if ( ! empty($_FILES) || isset($_POST['url']))
{
if(isset($_POST['url'])){
if(FALSE === ($temp = tempnam('/tmp','RF'))){
response(trans("Failed to create temporary file").AddErrorLocation(), 406)->send();
exit();
}
$handle = fopen($temp, "w");
fwrite($handle, file_get_contents($_POST['url']));
fclose($handle);
$explUrl = explode(".", basename($_POST['url']));
$suffix = array_pop($explUrl);
$_FILES['file']= array(
'name' => basename($_POST['url']),
'tmp_name' => $temp,
'size' => filesize($temp),
// type should be mime-type not file suffix
'type' => $suffix,
'error' => UPLOAD_ERR_OK
);
}

if($_FILES['file']['error'] !== UPLOAD_ERR_OK){
response(trans("Error upload code: ".$_FILES['file']['error']).AddErrorLocation(), 406)->send();
// error code list: http://php.net/manual/en/features.file-upload.errors.php
exit();
}

if(empty($_FILES['file']['tmp_name'])){
response(trans("Error upload").AddErrorLocation(), 406)->send();
exit();
}

$info = pathinfo($_FILES['file']['name']);
$mime_type = $_FILES['file']['type'];
if (function_exists('mime_content_type')){
$mime_type = mime_content_type($_FILES['file']['tmp_name']);
}
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]