Как узнать размер и расширение файла?
На страничке есть ссылка на файл
<a href="file.doc">Файл</a> Рядом с ссылкой должны автоматически указываться расширение и размер файла: Файл (DOC, 15 КБ) Как это сделать? Не нашел в JS нужных функций. |
Это делается на сервере.
|
Т.е. придется писать серверную программу или можно на PHP сделать?
|
можно сделать на пхп
|
А php что, не на сервере работает?
|
Вот, а как тогда на ПХП это замутить? Может быть есть какие-нибудь готовые решения, ведь на каждом форуме показываются параметры прикрепленных файлов.
Дайте, какую-нибудь наводку, плиз. |
Стандартные функции же
$extension = pathinfo($file, PATHINFO_EXTENSION); $size = filesize($file);Где $file - путь к файлу. Можно определять еще на этапе загрузки файла. Тогда в первом случае нужно заменить $file на $_FILES['имя поля файла']['name'], а второе - на $_FILES['имя поля файла']['tmp_name']. |
Спасибо большое, попробую. С ПХП года три не работал — все забыл :-(
|
Функция filesize не понимает кириллицу (на сервере и в ПХП utf-8). Все уже перепробовал и iconv("windows-1251","utf-8",$filename); и urlencode($filename);
Как указать кириллическое имя файла? <?php $filename = 'Нужный файл.doc'; echo strtoupper(pathinfo($filename, PATHINFO_EXTENSION)) . ', ' . filesize($filename)/1024 . ' КБ'; ?> |
Цитата:
Цитата:
что за бред? у тебя страница в UTF-8, и ты конвертируешь в ней строку из win-1251 в utf-8?! посмотри с помощью scandir в какой кодировке у тебя имена файлы |
Блин, вот невнимательный! Конечно iconv("utf-8","windows-1251",$filename); Спасибо :-)
|
Хм... На локальной машине размер файлов читается, залил на сервер — везде 0 КБ пишет. В чем может быть проблема?
Расширения определяет нормально. |
А файлы открывает? Может быть прав не хватает?
|
Сам разобрался. Видимо на сервере имена файлов в utf-8, поэтому мое перекодирование utf-8 → win-1251 оказалось лишним. Это что получается, в Винде имена файлов в win-1251, а в Юниксе в utf-8?
Файлы замечательно открываются. |
Цитата:
|
Цитата:
|
Цитата:
в общем напряги мозги, все как-то обходятся без русских имен. |
Файлы могут называться как угодно, я это не контролирую. Думаю вот о чем: можно ли узнавать кодировку имен файлов на сервере (хотя бы ОС сервера)? Тогда можно было бы обойтись одним логическим условием, а код работал бы как на Винде, так и на Юниксе.
|
Часовой пояс GMT +3, время: 12:28. |