2012-01-29 13 views
7

मैं वर्तमान में 2 छवि स्थानों और राशि के लिए मजबूर करने के लिए कैसे वे प्रारूपों (jpg, jpeg, png, gif)ब्राउज़र में फ़ाइल डाउनलोड, nginx सर्वर

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

किसी को कैसे मैं छवि फ़ाइलों को मजबूर कर सकते हैं पता है हो सकता है वेब ब्राउज़र में प्रस्तुत करने के बजाए डाउनलोड करने के लिए/o/डाउनलोड करें? 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; 
    } 

} 

उत्तर

19

तुम बस HTTP हेडर Content-disposition वापस जाने के लिए की जरूरत है::

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

कि एक 404 त्रुटि के परिणामस्वरूप से जानकारी पर आधारित है:/ – eeek

+0

यह लिंक मेरे लिए काम करता है: http: //210mike.com/force-file-download-nginx-apache/ स्थान ~ * (।। * \ पीडीएफ) { प्रकार {आवेदन/ओकटेट धारा .pdf; } डिफ़ॉल्ट_ प्रकार आवेदन/ऑक्टेट-स्ट्रीम; } – learnJQueryUI

3

मैं अपने खुद के nginx सर्वर में इस कार्यक्षमता प्राप्त करने की कोशिश की है

यहाँ मेरी conf फ़ाइल है।

मेरे पास सर्वर पर एक फ़ोल्डर है जो मैं पथ जानता हूं जो किसी के लिए खुला होना चाहता हूं।

ऐसा करने के लिए मैंने अपनी nginx कॉन्फ़िगरेशन फ़ाइल में एक/फ़ाइल/स्थान जोड़ा।

server { 
    listen 80; 
    server_name example.com; 

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

/var/openStuff/फाइल करने के लिए जाने के लिए और एक्स के लिए देखो और ब्राउज़र के लिए बाध्य करेगा फ़ाइल

यह भी अगर मार्ग है काम करेंगे डाउनलोड करने के लिए example.com/file/x लिए किसी भी अनुरोध /file/stuff/things.txt और मेरे लिए /var/openStuff/file/stuff/things.txt

से यह काम करेगा config काम करता है नीचे
0

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

लेकिन पीडीएफ फ़ाइल को काम करने के लिए लोअरकेस पीडीएफ के साथ समाप्त होने की आवश्यकता है। मैं अभी भी उपरोक्त कॉन्फ़िगरेशन फ़ाइल में .pdf और .PDF दोनों को जोड़ने के लिए वाक्यविन्यास नहीं जानता हूं। कोई उपाय? जवाब http://210mike.com/force-file-download-nginx-apache/

संबंधित मुद्दे