Почему-PHP функция filesize на сервере на котором сайт возвращает размер файла только если указать полный абсолютный путь к файлу а на моём компе работает и без полного абсолютного файла.
30 Mar
2015
$filename = 'fuck.pdf';
$file = dirname(FILE).'/'.$filename;
Файл находится в той же директории что и нужный файл.
poopoo, а второй?
Что второй? Путь? Просто писал filesize($filename);.
погляди что у тебя в $file лежит на локале и на сервере
Ну на моём компе: /srv/www/htdocs/m2/protected/modules/user/controllers/fuck.pdf а на сервере почти то же самое — /var/www/htdocs/m2/protected/modules/user/controllers/fuck.pdf
права на сервере, я так думаю ты проверял?
Да.
ну тогда давай сравнивать какие заголовки отдает локалка и сервер при обращении к fuck.pdf
а вообще можно плюнуть и изменить строку - header('Content-Length: ' . filesize($file)); на header('Content-Length: ' . filesize($filename)); если уж ты уверен что оно не будет у тебя лежать где-то еще.
Так в этом то и загвоздка. У меня так работает, а на сервере отправляется файл с размером 0 байт.
покажи заголовки при скачивании этого файла - сервер что отдает?
Accept-Ranges: bytes
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection: keep-alive
Content-Disposition: inline; filename="fuck.pdf"
Content-Length: 479832
Content-Transfer-Encoding: binary
Content-Type: application/pdf
Date: Mon, 30 Mar 2015 09:02:01 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Server: nginx
Set-Cookie: first_visit=0
X-Powered-By: PHP/5.4.4-14+deb7u7
Это с сервера.
На локальной машине то же самое, но версия PHP 5.6.1
Content-Length: 479832 - это все же не ноль. размер то взялся?
Потому что я использую полный абсолютный путь.
ну дык ты без полного покежь как выводит?
И это, а $file ты тоже показывал когда у тебя полный путь был?
Accept-Ranges: bytes
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection: keep-alive
Content-Disposition: inline; filename="fuck.pdf"
Content-Transfer-Encoding: binary
Content-Type: application/pdf
Date: Mon, 30 Mar 2015 09:23:01 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Server: nginx
Set-Cookie: first_visit=0
Transfer-Encoding: chunked
X-Powered-By: PHP/5.4.4-14+deb7u7
Да.
покажи что в $file если relative указан
на сервере я имею в виду
$filename = 'fuck.pdf';
$file = $filename;
сделай
и проверяй что будет
А что будет? Будет работать.
poopoo, если будет работать, то вопрос закрыт. Отныне и во веки вечные пиши пути, относительно рута
Но почему здесь работает а там нет? Настройки, как уже предлагали, не смотрел так как сейчас не до этого.
мда... туплю)
poopoo, а все прочие условия совпадают? То есть ты и там, и там используешь один и тот же файл? (а не, допустим, запихиваешь это в плагин для WordPress’а)
У меня Apache а там Nginx.
poopoo, сдаюсь, я без идей. Возможно надо смотреть в сторону того, как именно подключается PHP к энджиниксу, но я тут ничего посоветовать не могу.