2012-03-17 25 views
59

मैं अपनी वेबसाइट के लिए अपने स्थानीय होस्ट फ़ाइलें अपलोड कर दी समर्थन नहीं करता है, लेकिन यह मुझे इस त्रुटि दिखा रहा है: -स्ट्रीम को खोलने में विफल: HTTP आवरण लिखने योग्य कनेक्शन

: [2] file_put_contents(***WebsiteURL*** /cache/lang/ ***FileName*** .php) 
[function.file-put-contents]: failed to open stream: HTTP wrapper does 
not support writeable connections | LINE: 127 | FILE: /home/content/ 
***Folders\FileName*** .php 

क्या मैं व्यक्तिगत रूप से लगता है कि सामग्री में सहेज कैश फ़ोल्डर में एक फ़ाइल और जब मैंने अपने वेब सर्वर पर फ़ाइलों को अपलोड किया तो यह कैश किए गए लोकलहोस्ट फ़ोल्डर तक पहुंचने का प्रयास कर रहा है।

उत्तर

119

file_put_contents(***WebSiteURL***...) करने के बजाय आपको /cache/lang/file.php (उदा। /home/content/site/folders/filename.php) के सर्वर पथ का उपयोग करने की आवश्यकता है।

आप HTTP पर एक फ़ाइल नहीं खोल सकते हैं और इसे लिखे जाने की उम्मीद है। इसके बजाय आपको स्थानीय पथ का उपयोग करके इसे खोलने की जरूरत है।

+0

यह धन्यवाद (एक बहुत बढ़िया जवाब के लिए +1) –

+0

कई बहुत धन्यवाद काम मैं अमेज़न webservices S3 भंडारण क्षेत्र का उपयोग कर रहा हूँ। मेरे पास सर्वर पथ नहीं है लेकिन सिर्फ यूआरएल है। ** पथ कैसे प्राप्त करें? ** –

+0

एक बहुत :) आप के लिए तीन चियर्स ... – Neocortex

13

आप fopen() फ़ंक्शन का उपयोग कर सकते हैं।

कुछ उदाहरण:।

$url = 'http://doman.com/path/to/file.mp4'; 
$destination_folder = $_SERVER['DOCUMENT_ROOT'].'/downloads/'; 


    $newfname = $destination_folder .'myfile.mp4'; //set your file ext 

    $file = fopen ($url, "rb"); 

    if ($file) { 
     $newf = fopen ($newfname, "a"); // to overwrite existing file 

     if ($newf) 
     while(!feof($file)) { 
     fwrite($newf, fread($file, 1024 * 8), 1024 * 8); 

     } 
    } 

    if ($file) { 
     fclose($file); 
    } 

    if ($newf) { 
     fclose($newf); 
    } 
+1

बहुत बहुत धन्यवाद। मैंने बहुत सारे समाधानों की कोशिश की लेकिन यह केवल यही है जो मेरे लिए काम करता था। – moreirapontocom

+0

कोई समस्या नहीं: डी: डी –

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