खोज…
पैरामीटर
परम / कार्य | विवरण |
---|---|
फाइल अपलोड | फ़ाइल का नाम <input> फ़ील्ड |
$ sampleName | उपयोगकर्ता द्वारा अपलोड की गई डायनामिक रूप से स्ट्रिंग या फ़ाइल का नाम भी हो सकता है |
app_path () | आवेदन के लिए पूर्ण पथ प्रदान करने के लिए लारवेल सहायक है |
getCLientOriginalExtension () | उपयोगकर्ता द्वारा मशीन पर अपलोड की गई फ़ाइल के विस्तार को प्राप्त करने के लिए Laravel आवरण, जैसा कि उपयोगकर्ता मशीन पर था |
उपयोगकर्ताओं द्वारा अपलोड की गई फ़ाइलों के लिए टाइमस्टैम्ड फ़ाइल नाम बनाना।
नीचे एक विंडोज मशीन पर काम नहीं किया जाएगा
$file = $request->file('file_upload');
$sampleName = 'UserUpload';
$destination = app_path() . '/myStorage/';
$fileName = $sampleName . '-' . date('Y-m-d-H:i:s') . '.' .
$file->getClientOriginalExtension();
$file->move($destination, $fileName);
यह "/ पथ के लिए कोई फ़ाइल नहीं ले जा सकता ..." जैसी त्रुटि फेंक देगा
क्यों? - यह एक Ubuntu सर्वर पर पूरी तरह से काम करता है
इसका कारण यह है कि विंडोज colon ':'
को फाइलन में अनुमति नहीं दी जाती है, जहां इसे लिनक्स पर अनुमति दी जाती है। यह इतनी छोटी सी बात है कि हम इसे उल्टा नोटिस नहीं कर सकते हैं और यह सोचते रह सकते हैं कि उबंटू (लिनक्स) पर अच्छा चलने वाला कोड काम क्यों नहीं कर रहा है?
हमारा पहला कूबड़ फ़ाइल की अनुमति और इस तरह की चीजों की जांच करना होगा, लेकिन हम यह नहीं देख सकते हैं कि colon ':'
यहां अपराधी है।
इसलिए विंडोज पर फाइल्स अपलोड करने के लिए, टाइमस्टैम्ड फाइलनाम को जेनरेट करते समय colon':'
इस्तेमाल न करें colon':'
इसके बजाय कुछ इस तरह करें:
$filename = $sampleName . '-' . date('Y-m-d-H_i_s') . '.' . $file->getClientOriginalExtension(); //ex output UserUpload-2016-02-18-11_25_43.xlsx
OR
$filename = $sampleName . '-' .date('Y-m-d H i s') . '.' . $file->getClientOriginalExtension(); //ex output UserUpload-2016-02-18 11 25 43.xlsx
OR
$filename = $sampleName . '-'.date('Y-m-d_g-i-A').'.' . $file->getClientOriginalExtension(); //ex output UserUpload-2016-02-18_11-25-AM.xlsx
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow