Страница 1 из 11
Модератор форума: JonMagon 
Сообщество uCoz » Мастерская uCoz » Использование PHP и API на uCoz » Как адаптировать простой PHP скрипт под uCoz
Как адаптировать простой PHP скрипт под uCoz
VOYSAX_MAN
Сообщений: 10
Репутация: 0

Сообщение # 1 | 00:42:37
Искал решения, как вывести размер файла на сайте uCoz, наткнулся на довольно таки простой скрипт, ну как его втулить на uCoz пока не знаю. Есть вообще такая возможность? Вот сам скрипт

Код
<?php
// аргументов функции будет путь к файлу
function get_filesize($file)
{
// идем файл
if(!file_exists($file)) return "Файл не найден";
// теперь определяем размер файла в несколько шагов
$filesize = filesize($file);
// Если размер больше 1 Кб
if($filesize > 1024)
{
$filesize = ($filesize/1024);
// Если размер файла больше Килобайта
// то лучше отобразить его в Мегабайтах. Пересчитываем в Мб
if($filesize > 1024)
{
$filesize = ($filesize/1024);
// А уж если файл больше 1 Мегабайта, то проверяем
// Не больше ли он 1 Гигабайта
if($filesize > 1024)
{
$filesize = ($filesize/1024);
$filesize = round($filesize, 1);
return $filesize." ГБ";
}
else
{
$filesize = round($filesize, 1);
return $filesize." MБ";
}
}
else
{
$filesize = round($filesize, 1);
return $filesize." Кб";
}
}
else
{
$filesize = round($filesize, 1);
return $filesize." байт";
}
}
?>
Выводить вот этим кодом

Код
<?php
include_once "function/function.php"; // подключаем файл с функцией

// вставляете путь или переменную с путём для обработки его функцией
$size = get_filesize ('images/photo.jpg');
echo "Размер файла: <strong>".$size."</strong>"; // выводим результат с размером
?>
Источник: http://bit.ly/1QKbxju

Буду благодарен за помощь в решении данного вопроса.
У меня есть и отдельный сервер выделенный полноценный, с php, и подключен php на самом сайте uCoz.
leonoff(on)
Сообщений: 269
Репутация: 51

Сообщение # 2 | 08:55:29
VOYSAX_MAN, сами то файлы где лежат? На каком сервере?

Почему реперы зимой и летом ходят в шапках, но при этом все равно болеют?
VOYSAX_MAN
Сообщений: 10
Репутация: 0

Сообщение # 3 | 18:30:18
Я использую прямую ссылку на файл. Сам файл находится на своем выделеном сервере, не связаным с uCoz.
leonoff(on)
Сообщений: 269
Репутация: 51

Сообщение # 4 | 10:00:04
VOYSAX_MAN, модифицировал ваш найденный скрипт чтобы он получал размер файла по ссылке на него. Короче.
На странице материалов вставляете ajax запрос, который будет передавать url файла к php
Код
<script>
$(function() {
  var fileUrl = ''; // указываем прямую ссылку к файлу
  $.ajax({
    url: 'php/filesize/filesize.php',    
    type: 'POST',
    data: {url: fileUrl},
    cache: false,
    dataType: 'json',
    success: function(data) {
      $('#your_id').text(data); // тут пишем id элемента в который нужно вставить результат
    }
  });
});
</script>
Теперь создаете файл filesize.php с таким содержимым

Код
<?php

$___notjson = 1;

if ( !empty ( $_POST['url'] ) ) $url = $_POST['url'];

if ( isset ( $url ) ) {
    
   echo json_encode ( getFileSize ( $url ) );
    exit;
   
}

function getFileSize($url){
    ob_start();
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_NOBODY, 1);
    $ok = curl_exec($ch);
    curl_close($ch);
    $head = ob_get_contents();
    ob_end_clean();
    $regex = '/Content-Length:\s([0-9].+?)\s/';
    preg_match($regex, $head, $matches);
    $filesize = isset($matches[1]) ? $matches[1] : "unknown";
    if ( $filesize == 'unknown' ) return $filesize;
    if($filesize > 1024) {
      
        $filesize = $filesize/1024;
      
         // Если размер файла больше Килобайта
        // то лучше отобразить его в Мегабайтах. Пересчитываем в Мб
      
        if ( $filesize > 1024 ) {
         
            $filesize = $filesize/1024;
         
             // А уж если файл больше 1 Мегабайта, то проверяем
            // Не больше ли он 1 Гигабайта
         
            if ( $filesize > 1024 ) {
            
                $filesize = ($filesize/1024);
                $filesize = round ( $filesize, 1 );
                return $filesize . " ГБ";
            
            } else {
            
                $filesize = round ( $filesize, 1 );
                return $filesize . " MБ";
            
            }
         
      } else {
         
            $filesize = round ( $filesize, 1 );
            return $filesize." Кб";
         
        }
    } else {
      
        $filesize = round ( $filesize, 1 );
        return $filesize." байт";
      
    }
    
}

?>

и заливаете его по FTP PHP uCoz в созданную папку filesize. Как-то так.

Почему реперы зимой и летом ходят в шапках, но при этом все равно болеют?
VOYSAX_MAN
Сообщений: 10
Репутация: 0

Сообщение # 5 | 00:15:04
У меня отображает "null" значения... sad
leonoff(on)
Сообщений: 269
Репутация: 51

Сообщение # 6 | 07:25:36
VOYSAX_MAN, url не правильно указал. Замените на

Код
url: '/php/filesize/filesize.php',

Почему реперы зимой и летом ходят в шапках, но при этом все равно болеют?
VOYSAX_MAN
Сообщений: 10
Репутация: 0

Сообщение # 7 | 21:55:14
Я это сразу заметил, результат все равно не изменился...отображает "null" sad
leonoff(on)
Сообщений: 269
Репутация: 51

Сообщение # 8 | 09:02:08
VOYSAX_MAN, я проверил у себя. Все работает.

В скрипте вставил

Код
var fileUrl = '$RFILE_DIRECT_URL$';
и получил размер как надо. Вывод. Вы либо ничего не указали в скрипте в качестве ссылки, либо ссылка не является прямой. Прямая ссылка на файл должна заканчиваться расширением файла. Т.е. если это mp3, то url файла должен заканчиваться на .mp3

Почему реперы зимой и летом ходят в шапках, но при этом все равно болеют?
VOYSAX_MAN
Сообщений: 10
Репутация: 0

Сообщение # 9 | 20:39:15
Это само собой. У меня стоит там прямая ссылка.
Вот можете попробовать сами с этой ссылкой вот: 


Сообщение отредактировал VOYSAX_MAN - Четверг, 14 Янв 2016, 20:39:58
leonoff(on)
Сообщений: 269
Репутация: 51

Сообщение # 10 | 21:09:28
VOYSAX_MAN, ошибка где-то на вашей стороне. Мне надо посмотреть страницу где вы разместили скрипт. Скиньте ссылку на такую страницу. Можно в ЛС, если не хотите светить ссылку

Почему реперы зимой и летом ходят в шапках, но при этом все равно болеют?
VOYSAX_MAN
Сообщений: 10
Репутация: 0

Сообщение # 11 | 18:11:46
огромное спасибо leonoff(on), помог, все работает, очень доволен. Тему можно закрывать. Спасибо!
Сообщение отредактировал VOYSAX_MAN - Вторник, 19 Янв 2016, 18:12:04
Сообщество uCoz » Мастерская uCoz » Использование PHP и API на uCoz » Как адаптировать простой PHP скрипт под uCoz
Страница 1 из 11
Поиск: