Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 23:05 27.04.24 
Компютри и Интернет
   >> WEB Дизайн и HTML
*Кратък преглед

Страници по тази тема: 1 | 2 | 3 | (покажи всички)
Тема PHP въпроснови  
Автор Гpиrop-ът (новак)
Публикувано12.02.12 23:25



имам на сайта си файл /test.zip и в .php страница линк към него
<a href ='test.zip'>download test</a>

Има ли начин линка да продължава са сочи към /test.zip , но при определени условия юзъра да даунлоудва друг файл, примерно /some_dir/test.zip ?
Същото трябва да работи и при директно искане на файла, примерно си пейства в адрес бар http://domain.com/test.zip , но сваля /some_dir/test.zip

10х



Тема Re: PHP въпроснови [re: Гpиrop-ът]  
Автор croesus (хлевоуст)
Публикувано13.02.12 09:03



Да, като сложиш в папката на test.zip един .htaccess файл и вътре опишеш условията, при които усера да даунлоудва друг файл. Изискване е само mod_rewrite да е активиран и условията да са възпроизводими на езика на .htaccess файловете.

Кофти е, че писането на .htaccess файлове е едно от най-противните занимания в уеб програмирането. Синтаксиса е кошмарен, а дебъгване няма. Ето ти един рефърънс към синтаксиа им:



Другият вариант е самият test.zip да е всъщност php файл (а не zip), който може да проверява за най-разнообразни условия и после чрез header() да указва кой файл да се даунлоудне. Това е по-лесния вариант.



Тема Re: PHP въпроснови [re: Гpиrop-ът]  
Автор UbuHtu Man 11x (Oneiric Ocelot)
Публикувано15.02.12 22:36



Аз се сещам друг начин - чрез джава скрипт, който да проверява кликането на мишката и посредством кейсове да пренасочва.

Тънкият момент във всички варианти е начинърт на задаване и съответно проверяване на тези условия.

С каква цел искаш да се свали файл "У" вместо файл "Х"?



Тема Re: PHP въпроснови [re: croesus]  
Автор Гpиrop-ът (новак)
Публикувано16.02.12 10:51



Благодаря за отговорите.

С джаваскрипт няма да стане, защото искам файла да се сваля и при директно поискване, т.е. и без кликване на линк към него - ако директно пейстнеш УРЛ-то му в браузър или даунлоуд мениджър.
Причината да искам това е, че досега имаше един файл и адреса му е известен, линкнат е от други сайтове и т.н. , и не искам да му сменям адреса. Сега обаче файловете са няколко, и искам при определени условия да се свали не тоя по дефолт, а някой от другите.

В отговор на:

Другият вариант е самият test.zip да е всъщност php файл (а не zip), който може да проверява за най-разнообразни условия и после чрез header() да указва кой файл да се даунлоудне.




Точно това ми трябва, но още съм начинаещ в ПХП , как и какви хедъри да използвам? Ще е възможно ли да се продължи прекъснат даунлоуд?

10х



Тема Re: PHP въпроснови [re: Гpиrop-ът]  
Автор croesus (хлевоуст)
Публикувано16.02.12 11:08



Виж тук е обяснено добре:




Кодът на test.zip:

<?php
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="example.zip"');
header('Content-Transfer-Encoding: binary');

readfile('example.zip');?>
--- тук указваш кой точно файл да се даунлоудне.

"Content-Type" може да е application/zip, application/x-zip, application/x-zip-compressed, application/octet-stream, application/x-compress, application/x-compressed, multipart/x-zip

Виж тук и друг пример:



Тема Re: PHP въпроснови [re: Гpиrop-ът]  
Автор wiz (змей)
Публикувано19.02.12 21:12



с други думи вместо към файла може да сложиш линк към РНР/Java/Perl/etc

който да се занимава със сваляне на файла и праща файл по желание, на части и т.н.

вече какво и как зависи какво си написал ...

People just don't make sense anymore



Тема Re: PHP въпроснови [re: Гpиrop-ът]  
Автор Дaвaщия и взимaщия (Добре познат.)
Публикувано19.02.12 22:54



ще ти помогне изключително много.

------------------------------------------



Тема Re: PHP въпроснови [re: Дaвaщия и взимaщия]  
Автор UbuHtu Man 11x (Oneiric Ocelot)
Публикувано21.02.12 12:15





Това видео и на Наков ще помогне.



Тема Re: PHP въпроснови [re: croesus]  
Автор sashometallico (unknown)
Публикувано03.03.12 02:08



Проблемът със предложеното решение е, че web сървърът няма да знае, че новият test.zip всъщност е PHP и няма да го parse-не (освен ако web сървърът не е настроен по този начин, което е малко вероятно за shared хостинг).

Вместо това, имам друга идея:

1. Забраняваш директен http достъп до zip файла:
1.1 Създаваш нова директория (например /data)
1.2 Преместваш zip файла в нея
1.3. Забраняваш достъп до нея като:
Създаваш нов .htaccess файл в нея, със съдържание "deny from all" (без кавичките)
1.4. Така в новата директория трябва да има два файла (test.zip и .htaccess)

2. Правиш пренасочване на стария URL на zip файла към нов php файл чрез .htaccess:
ако преди zip-ът се е казвал test.zip и е бил във root директорията на сайта, примерен redirect във .htaccess би изглеждал така:

Redirect 301 test.zip test.php

Тоест създаваш .htaccess файл със това съдържание във папката където беше test.zip преди.

3. Правиш нов файл test.php и във него си правиш проверките и логиките:

<?php
if ( /* условията при които те могат да свалят файла */ ) {

header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="./data/test.zip"');
header('Content-Transfer-Encoding: binary');

readfile('./data/test.zip');

}

else {
//тук пишеш какво да стане ако нямат право да го свалят.
}

?>

Не съм го тествал, но би трябвало да работи.

Поздрави

:)))


Тема Re: PHP въпрос [re: sashometallico]  
Автор wiz (змей)
Публикувано03.03.12 17:43



хахаха "Не съм го тествал, но би трябвало да работи. "

дали може да си представиш че някои из този форум са правили подобни неща много пъти?

толкова изписа за нещо дето става с няколко реда на РНР/Java



People just don't make sense anymore

Редактирано от wiz на 03.03.12 17:45.




Страници по тази тема: 1 | 2 | 3 | (покажи всички)
*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.