2012-01-29 28 views
7

tarayıcıda dosya indir, nginx sunucu zorlamak için nasılŞu anda 2 görüntü konumları ve sahip

i.domain.com/simage.jpg thumbnail 
i.domain.com/image.jpg high quality 
i.domain.com/o/image.jpg full resolution 

kimse ben görüntü dosyaları zorlayabilir nasıl biçimleri (jpg, jpeg, png, gif) biliyor mu olabilir web tarayıcısında oluşturmak yerine/o/indirmek için? http://pastebin.com/dP8kZMzx

#setup subdomain i.domain.com 
server { 
    server_name i.domain.com; 
    access_log /var/log/nginx/i..com.access.log; 
    error_log /var/log/nginx/i.domain.com.error.log; 

    root /var/www/domain.com/test1/images; 
    index index.php index.html index.htm; 

    #error_page 403 = /notfound.jpg; 
    #error_page 500 = /notfound.jpg; 

    location/{    
     #change this to a 404 img file .jpg 
     try_files $uri $uri/ /notfound.jpg; 

     rewrite "/s([A-Za-z0-9.]+)?" /small/$1 break; 
     rewrite "/o/([A-Za-z0-9.]+)?" /orig/$1 break; 
     rewrite "/([A-Za-z0-9.]+)?" /medium/$1 break; 
    } 

} 

cevap

19

sadece HTTP başlığı Content-disposition dönmek gerekir: Kendi nginx sunucusuna bu işlevselliği elde etmek için çalışıyorlar

location ~* /orig/(.+\.jpg)$ { 
    add_header Content-disposition "attachment; filename=$1"; 
} 
+0

gelen bilgi dayanmaktadır:/ – eeek

+0

Bu link benim için çalışıyor: http: //210mike.com/force-file-download-nginx-apache/ konum ~ * (. * \. pdf) { türleri {application/octet-stream .pdf; } default_type application/octet-stream; } – learnJQueryUI

3

İşte benim conf dosyası.

Sunucuda, yolu bilen herkes için açık olmasını istediğim bir klasör var.

Bunu yapmak için nginx yapılandırma dosyasına bir/dosya/konum ekledim.

server { 
    listen 80; 
    server_name example.com; 

    location /file/ { 
     alias /var/openStuff/file/; 
     add_header Content-disposition "attachment"; 
    } 
} 

yolu ise, bu da çalışacak dosyayı

indirmek için/var/openStuff/dosyaya gidip x için bakmak ve tarayıcıyı zorlar example.com/file/x için herhangi bir istek /file/stuff/things.txt ve /var/openStuff/file/stuff/things.txt adresinden sunulacaktır.

0

Aşağıdaki yapılandırma benim için çalışır.

server { 
    ... 
    # Django media 
    location /media { 
     alias /var/www/media; 
     types { application/octet-stream .pdf; } 
     default_type application/octet-stream; 
    } 
    ... 
} 

Ancak pdf dosyasının çalışması için küçük boyutlu pdf ile bitmesi gerekiyor. Hala yukarıdaki yapılandırma dosyasına hem .pdf hem de .PDF eklemek için sözdizimi bilmiyorum. Herhangi bir öneri? cevap 404 hatası sonuçlandı http://210mike.com/force-file-download-nginx-apache/

İlgili konular