Dosyaları korumak için garip bir şekilde tökezledim. .htpwd şifre saklanır ve .htaccess:dosyaları kendi adlarına boşluklarla indir - htaccess ile kısıtlama
RewriteEngine On
##RewriteBase/
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example.com [NC]
RewriteRule \.(.*)$ - [NC,F,L]
RewriteCond %{QUERY_STRING} ^filename=(.*)$
RewriteRule ^download\.php$ %1
RewriteRule (.*) - [E=file:$1]
Header set Content-type "octet-stream"
Header set Content-disposition "attachment; filename=%{file}e" env=file
##AuthName "Restricted Access"
##AuthType Basic
##AuthUserFile /local/home/example/example.com/downloads/.htpwd
##AuthGroupFile /dev/null
##require valid-user
Örnek (aynı klasörden) indirilecek korumalı klasörü ve dosya neden iki dosyalarını boş indir.php dosyası
Javascipt var indirme bağlantısı:
http://www.example.com/downloads/download.php?filename=dog%20cat%20cow.zip
Dosya adı dog-cat-cow.zip ise - tüm çalışır. Sorun, dosya adı: "köpek cat cow.zip" olduğunda başlar, daha sonra dosya indirilir ancak indirildikten sonra dosya adı "dog cat cow.zip" yerine "dog" olacaktır. Yani sorun insanlar bile uzatma olmadan dosya almak ve onunla ne yapacağına dair hiçbir fikrim yok.
Bu dosyaları çözüp sadece boşlukları kaldıramayacağımı düşünerek nasıl çözülebilir? Ben, htaccess'in nasıl okunacağı konusunda uzman değilim ve arama yapmak için aklınıza gelebilecek herhangi bir ifade, benzer bir sorun çözme sağlar. Herhangi bir fikrin var mı? yorumlarda belirtildiği gibi
i bu 'Başlık set Content-eğilim böyle bir şey yapmak tavsiye "eki; dosya adı = '% {dosya} e'" env = Dosya ', tırnak – anonymous
dosya adı @ Adsız söylediği gibi dosya beri boşluklar, teklif sınırlayıcılarına ihtiyacınız olacak. Ancak, bu ekstra ne için? – MrWhite
"ancak indirildikten sonra dosya adı" - her zaman indirme yerini (tavsiye) için tarayıcıyı alabilirsiniz - bu aşamada kullanıcı dosya adını düzeltebilirsiniz. – MrWhite