2008-10-24 8 views
7

के भीतर एक फ़ाइल (उदा। पीडीएफ) से लिंक करना मैं अपने नियंत्रक विचारों में से किसी एक में कुछ पीडीएफ से लिंक करना चाहता हूं। इसे पूरा करने के लिए सबसे अच्छा अभ्यास क्या है? केकेपीएचपी वेबूट फ़ोल्डर में एक ./files/ सबफ़ोल्डर होता है, मैं अपने href में "जादू" पथनामों का उपयोग किये बिना इसे लिंक करने का प्रयास करके उलझन में हूं (उदा। "/path/to/my/webroot/files/myfile.pdf")।एक केकपीएचपी व्यू

मेरे विकल्प क्या हैं?

संपादित करें: मैंने अपने प्रश्न का पर्याप्त वर्णन नहीं किया। मैं प्लेटफार्म-अज्ञेयवादी (यानी mod_rewrite) तरीके से/एप/वेबूट/फाइल/में फ़ाइलों से लिंक करने का प्रयास कर रहा था।

मैंने केकपीएचपी निर्देशिका संरचना के बाहर ऐसी फाइलों को संग्रहीत करके इस मुद्दे के आसपास काम किया है।

उत्तर

16
$html->link('Pdf', '/files/myfile.pdf'); 
+0

यह सख्ती से मेरे प्रश्न का सही उत्तर है। हालांकि, मैंने अच्छी तरह से संवाद नहीं किया कि मैं कई प्लेटफार्मों में/ऐप/वेबूट/फाइल निर्देशिका में फ़ाइलों को जोड़ने के साथ संघर्ष कर रहा था; विशेष रूप से, जहां mod_rewrite उपलब्ध नहीं है ... –

+0

मैं इसे echo $ के रूप में उपयोग कर रहा हूं-> एचटीएमएल-> लिंक (सबस्ट्र ($ परिणाम ['एस'] ['परिणाम'], 0,20), $ परिणाम [ 'एस'] [ 'filepath']); लेकिन यह COMPUTER CRIMEA JOIN देता है .. मैं चाहता हूं कि आपको – jack

+0

मिल जाए, सुनिश्चित करें कि यह सही वर्तनी है (पथ और फ़ाइल नाम) या अन्यथा यह गायब नियंत्रक त्रुटियों को फेंकता है। मुझे थोड़ी देर के लिए सिरदर्द दिया ... – karns

1

मुझे यकीन नहीं है कि मैं सही प्रश्न को समझता हूं, लेकिन यहां जाता है। मूल रूप से वेबूट फ़ोल्डर में डाली गई कोई भी फ़ाइल वेबसर्वर पर पहुंच योग्य होगी, इसलिए यदि आप फ़ाइल को वेबूट/फाइल/file.pdf में डालते हैं तो आप बस /files/file.pdf से लिंक करेंगे।

यदि वह काम नहीं करता है, अपने प्रश्न कृपया स्पष्ट ...

0

या ...

<a href="<?php echo $html->url('/files/somefile.pdf'); ?>">Link Text</a> 
1

या ..

<a href="<?php echo $this->webroot; ?>files/somefile.pdf">Link Text</a> 

:)

4

मैं पुष्टि कर सकता हूं कि यह एक मुद्दा है जब mod_rewri टी का उपयोग नहीं किया जा रहा है।

<?php echo $html->link('pdf', '/files/test.pdf'); ?> 

आउटपुट

<a href="/pathtoapp/index.php/files/test.pdf">pdf</a> 

यह उत्पादन

<a href="/pathtoapp/app/webroot/files/test.pdf">pdf</a> 
+0

नोट: बग http: //cakephp.lighthouseapp दायर किया।com/परियोजनाओं/42648/टिकट/1289-htmlhelperlink-to-image-broken-when-not-use-mod_rewrite # टिकट -1289-3 –

2

यह काम करना चाहिए चाहिए

<?php echo $html->link('pdf', $this->webroot('files'.DS.'test.pdf'); ?> 
+0

यह काम करता है, लेकिन केकेपीएचपी के नए संस्करणों पर, '$ html-> वेबूट' होना चाहिए '$ this-> webroot' के बजाय इस्तेमाल किया जाना चाहिए। – dnet

6

यह वह जगह है कुछ हद तक स्पर्शरेखा, लेकिन मॉडल में इस तरह के एक स्थान के लिए उपयोग के लिए और अन्य जगहें आप सिम कर सकते हैं प्लाई ऐसा करते हैं:

$file = WWW_ROOT . DS . 'files' . DS; 

यह रणनीति इस तरह XML या JSON के रूप में स्थिर डेटा लोड करने के लिए किसी को तक पहुँचने फ़ाइलें, के लिए उपयोगी हो सकता है।

सार्वजनिक उपभोग या सार्वजनिक लिंकिंग के लिए यह अनुशंसित नहीं है।

0
 <a href="<?php echo $this->request->webroot . 'carpetadentrodelwebroot/archivo.pdf'; ?>" target="pdf-frame" download="nombreParaDescarga">Descargar Archivo</a> 
+2

स्टैक ओवरफ़्लो में आपका स्वागत है! इस कोड स्निपेट के लिए धन्यवाद, जो कुछ सीमित, तत्काल सहायता प्रदान कर सकता है। एक उचित स्पष्टीकरण [बहुत सुधार होगा] (// meta.stackexchange.com/q/114762) यह दिखाकर इसका दीर्घकालिक मूल्य * क्यों * यह समस्या का एक अच्छा समाधान है, और भविष्य के पाठकों के साथ इसे और अधिक उपयोगी बना देगा अन्य, समान प्रश्न। आपके द्वारा किए गए अनुमानों सहित कुछ स्पष्टीकरण जोड़ने के लिए कृपया अपना उत्तर संपादित करें। –

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