21 Востаннє редагувалося koala (04.02.2020 17:33:43)

Re: захист файлів не сервері

А з боку сервера - десь так:

<?php
if(перевірили вміст форми){
  $filename = видобуваємо_назву_файлу_з_посилання;
  header("Content-Disposition: attachment; filename=" . $filename);
  header("Content-Type: application/octet-stream"); //чи що там
  readfile($filename);
}?>
Подякували: monoxrom1

22

Re: захист файлів не сервері

дякую всім, буду пробувати щось ваяти!
я взагалі-то не програміст, але так збоку проходив і колись трохи на PHP вже щось трохи пробував писати...

Ось згадав який я бачив недавно сайт і тут мені сподобалося як у них зроблені файли, наприклад:
http://sensi.org/scalar/ware/428/
якщо натиснути на файл то качається файлик без проблем, а якщо натравити телепорт то файлик качається також але всередині буде не його вміст а якась HTML заглушка :)

23

Re: захист файлів не сервері

ще раз дякую коалі за потрібні функції :)

header("Content-Disposition: attachment; filename=" . $filename);
header("Content-Type: application/octet-stream"); //чи що там

24 Востаннє редагувалося monoxrom (07.04.2020 17:49:47)

Re: захист файлів не сервері

Ще раз спитаю великоповажного Коалу

За ці функції:

<?php
if(перевірили вміст форми){
  $filename = видобуваємо_назву_файлу_з_посилання;
  header("Content-Disposition: attachment; filename=" . $filename);
  header("Content-Type: application/octet-stream"); //чи що там
  readfile($filename);
}?>

Що може бути що це все чудово працює в локалхості а коли гружу на реальний сервер то там працюють тільки маленькій файли десь до 100 мб, а вже більші не йдуть на закачку! нічого не відбувається! :(
Регісти імен файлів пепевірив, вроді все ок, у мене все з малої букви без спецсимволів

У хостера в інфі є такий пунктик на рахунок PHP (вибачайте за російську)

Прихований текст

Мои на 100% рабочие php-скрипты не корректно работают на Вашем хостинге. При сабмите формы данные серверу не передаются. Что делать?
------------
Это самая распространённая ошибка. Дело в том, что с некоторых времён разработчики php решили отключить по умолчанию (в целях повышения безопасности) глобальную регистрацию переменных, переданных скрипту различными методами (GET, POST и т.д.). Если вы писали свои скрипты "в старом" стиле, полагаясь на автоматическую регистрацию переменных, и вы не хотите их переписывать, присвойте переменной register_globals значение On (в конфигурационном файле php.ini, который находится в директории ~/cgi-bin вашего домашнего каталога).

Также некоторые скрипты используют массивы переменных $HTTP_*_VARS[], автоматическое создание которых также по умолчанию отключено. Включить создание этих массивов можно с помощью переменной register_long_arrays. И не забывайте, что в конфигурационном файле php.ini строки, в начале которых стоит точка с запятой ";", являются комментариями! И изменение значения закомментированных переменных ни к чему не приведёт!

Це з цим може бути щось звязане чи ні? якщо я включаю ці змінні тоді мій скрипт закачки падає з помилками але я хоча би бачу зміст файлів, файли що мали качатися тупо відкриваються як текст у броузері

------
чи це є якісь обмеження у фкнкції readfile? може там воно забиває файл в якийсь масив, а якщо файл завеликий то вміст не поміщається в масив?

25 Востаннє редагувалося koala (07.04.2020 18:20:29)

Re: захист файлів не сервері

Ну ви ж самі відповідь написали.

monoxrom написав:

тільки маленькій файли десь до 100 мб

Значить, там стоїть обмеження на розмір пам'яті для скрипта, телепатично вбачаю, 128 мегабайтів. readfile, дійсно, читає файл повністю в пам'ять. Дві хвилину гуглення - і

$fp = fopen($filename, 'rb');//відкриваємо файл на читання
fpassthru($fp);// відправляємо файл без повного считування 

замість readfile вас врятують.

26 Востаннє редагувалося monoxrom (07.04.2020 19:21:22)

Re: захист файлів не сервері

Дякую, звучить гарно але все як завжди, в локалхості все ок
а на реальному сервері те саме :( не працює, при чому менші файли відкриваються

може проблема у функції fopen читаю що вона там має отримати повну URL
а у мене там виходить параметр типу "/files/file.zip"
воно його точно нормально переварює? / - спереду точно є, та і менші файли працюють як не крути

27

Re: захист файлів не сервері

Код до студії.

28

Re: захист файлів не сервері

Два вечори погуглив і найшов вирішення, перший скрпт, і все працює
качає навіть через тор браузер, нічого не коцає, все ок (покішо принаймні))) )

29

Re: захист файлів не сервері

monoxrom написав:

Два вечори погуглив і найшов вирішення, перший скрпт, і все працює
качає навіть через тор браузер, нічого не коцає, все ок (покішо принаймні))) )

https://habr.com/ru/post/151795/

ну на**я це гівно кацапське тут треба?

Подякували: dot1

30

Re: захист файлів не сервері

Учітеся, брати мої! Думайте, читайте, І чужому научайтесь, − Свого не цурайтесь.