2008-10-01 31 views
8

यह आश्चर्य की बात है कितना मुश्किल इस सवाल का एक सरल, संक्षिप्त जवाब खोजने के लिए है:सबसे अच्छा तरीका है

  1. मैं अपनी वेबसाइट
  2. पर एक फ़ाइल, foo.zip, है यह पता लगाने के लिए मैं क्या कर सकता हूं कि इस फ़ाइल को कितने लोगों ने एक्सेस किया है? बिलाव
  3. मैं इस्तेमाल कर सकते हैं कॉल यदि आवश्यक हो तो

अद्यतन: आप एक स्क्रिप्ट लिख करने का सुझाव देते हैं, तो आप मुझे एक सभ्य एक को इंगित कर सकते हैं?

उत्तर

10

या यदि आप रीयलटाइम में डेटा की आवश्यकता नहीं है तो आप लॉग फ़ाइल को पार्स कर सकते हैं।

cat /path/to/access.log | grep foo.zip | grep 200 | wc -l 

जवाब में टिप्पणी करने के लिए:

लॉग फ़ाइल भी डाउनलोड की गई बाइट शामिल है, लेकिन के रूप में किसी ने कहा, यह सही संख्या प्रदर्शित न करे कोई उपयोगकर्ता क्लाइंट की तरफ डाउनलोड रद्द करता है, तो।

+0

यदि आपके पास लॉग –

+0

तक पहुंच है तो यह निश्चित रूप से सरल है क्या यह आपको बताता है कि डाउनलोड पूर्ण हो गया था या रद्द कर दिया गया था? –

+0

-1। कृपया अगला उत्तर देखें .. लॉग – bobobobo

10

शायद सबसे आसान तरीका फ़ाइल को सीधे जोड़ने के बजाय होगा, एक स्क्रिप्ट से लिंक करें जो काउंटर को बढ़ाता है और फिर फ़ाइल में आगे बढ़ता है।

+0

आपको _attempts_ डाउनलोड करें, जो कि काफी उचित है। – bobobobo

+0

कुछ और जानकारी के लिए [इस उत्तर] में लिंक (http://stackoverflow.com/a/16874980/1804173) बहुत उपयोगी है। – bluenote10

0

लॉग का उपयोग करें - फ़ाइल के लिए प्रत्येक जीईटी अनुरोध एक और डाउनलोड है (जब तक विज़िटर किसी कारण से डाउनलोड भाग को रोक नहीं देता)।

4

उत्तर के साथ "सबसे आसान तरीका शायद फ़ाइल को सीधे जोड़ने के बजाय होगा, एक स्क्रिप्ट से लिंक करें जो काउंटर को बढ़ाता है और फिर फ़ाइल में आगे बढ़ता है।"

इस अतिरिक्त है:

$hit_count = @file_get_contents('count.txt'); 
$hit_count++; 
@file_put_contents('count.txt', $hit_count); 

header('Location: http://www.example.com/download/pics.zip'); // redirect to the real file to be downloaded 

यहाँ count.txt एक सरल सादा पाठ फ़ाइल है, काउंटर की जानकारी भंडारण। आप इसे downloadable_filename.ext के साथ डेटाबेस तालिका में भी सहेज सकते हैं।

+0

मैं कैसे कर सकता हूं एक स्क्रिप्ट से लिंक करें – cssGEEK

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