2011-09-15 14 views
9

पर फ़ाइल का नाम बदलें मैं एक वेब फ़ाइल डाउनलोड करने में सक्षम होना चाहता हूं, लेकिन जब डाउनलोड संवाद खुलता है, तो फ़ाइल नाम का नाम बदला जाता है।जावास्क्रिप्ट डाउनलोड

पूर्व: फ़ाइल: http://<server>/<site>/test.txt

और जब मैं फ़ाइल, डाउनलोड फ़ाइल नाम के साथ खुला संवाद डाउनलोड करने के लिए क्लिक करें: test001.txt

मैं इसे कैसे प्राप्त कर सकता हूं?

उत्तर

0

आप जावास्क्रिप्ट में ऐसा नहीं कर सकते हैं। "सेव टू" -डिअलॉग ब्राउज़र द्वारा खुला है और आप जेएस के माध्यम से उस तक नहीं पहुंच सकते हैं, यह ओएस से मानक-संवाद है।

उपयोगकर्ता को डाउनलोड-लिंक पर क्लिक करने से पहले आपके सर्वर को वांछित नाम के साथ फ़ाइल प्रदान करनी होगी।

क्या कारण है कि आप डाउनलोड की गई फ़ाइल का नाम बदलना चाहते हैं?

+0

मैं फ़ाइलों को शेयरपॉइंट लाइब्रेरी में रखें और मैं फ़ाइलों को डाउनलोड करने और दस्तावेज़ जोड़ने के लिए एक कस्टम एक्शन बनाने की कोशिश कर रहा हूं फ़ाइल नाम में संस्करण। इस कस्टम क्रिया को करने के लिए मैं केवल जावास्क्रिप्ट कोड का उपयोग कर सकता हूं। कोई सुझाव? – bruno2007

2

यह प्रभाव अतिरिक्त शीर्षलेख भेजकर पूरा किया जाता है। उदाहरण के लिए, आप इसे प्राप्त करने के लिए PHP का उपयोग कर सकते हैं:

यूआरएल .htaccess, (आंतरिक रूप से) एक PHP फ़ाइल के अनुरोध को पुनर्निर्देशित करने के द्वारा फिर से लिखा जा सकता है। मैं एक साधारण हार्ड-कोडेड उदाहरण के लिए, कैसे हैडर सेट किया जा सकता का दिखाएगा:

<?php 
    header('Content-type: text/plain'); 
    header('Content-Disposition: attachment; filename="test001.txt"'); 
    readfile('files/test.txt'); 
    //assuming that the files are stored in a directory, not in a database 
?> 
+0

लेकिन यह उस गतिशील प्रकृति को लागू नहीं करता है जिसे वह ढूंढ रहा है। मेरा अनुमान है – Truesky

+0

मैंने दिखाया कि हेडर कैसे सेट किए जा सकते हैं। यदि उसके पास PHP में प्रोग्राम करने के लिए कौशल है, तो वह अपना लक्ष्य पूरा करने के लिए कोड को बदल सकता है। –

0

क्या आप चाहते हैं फ़ाइल नाम की एक सतत प्रकार वापस जाने के लिए है, तो आप एक स्क्रिप्ट है कि पर नज़र रखेंगे लिखने के लिए है, तो और उस फ़ाइल को उपयोगकर्ता को वापस प्रदान करें। एक तरफ सादा PHP का उपयोग कर रहा है, या कुछ और उन्नत है अगर यह एक समय में कई फाइलें हैं, संभवतः PHP में एक curl कॉल ताकि यह कई अलग-अलग फाइलें उत्पन्न कर सके। मैं अनुमान लगा रहा हूं कि आप जो कर रहे हैं, लेकिन उस फ़ाइल में फ़ाइल बॉक्स को गतिशील रूप से परिवर्तित नहीं किया जा सकता है, आप savename.txt फ़ाइल नाम वापस कर सकते हैं।

2

लिंक का download विशेषता का उपयोग करें। लेकिन यह केवल क्रोम ब्राउज़र में काम करता है :)

+2

अब एफएफ में भी :) –

+0

http://caniuse.com/#feat=download अब ओपेरा और एंड्रॉइड ब्राउज़र में समर्थित है। –

13

जैसा कि इनवीएस सुझाव देता है, अब लिंक पर download विशेषता है।

उदाहरण:

<a href="http://server/site/test.txt" download="test001.txt">Download Your File</a> 
  • spec
  • article
  • browser support (क्रोम, एफएफ, ओपेरा, Android ब्राउज़र> = 4.4.4 लेखन के समय)
+0

मैं इसे अन्य ब्राउज़रों के लिए लक्ष्य = "_ खाली" संयोजन के साथ संयोजन में उपयोग करता हूं। – Darren

+1

http://caniuse.com/#feat=download अब ओपेरा और एंड्रॉइड ब्राउज़र में समर्थित है। –

+0

धन्यवाद, मेरे उत्तर –

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