चेक बाहर सीआई के अपलोड पुस्तकालय:
http://www.codeigniter.com/user_guide/libraries/file_uploading.html
चलो पहले फ़ाइल नाम बदले बिना कैसे एक साधारण फाइल अपलोड करने के लिए पर एक नज़र डालें:
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'jpg|jpeg|gif|png';
$this->upload->initialize($config);
if (! $this->upload->do_upload())
{
$error = $this->upload->display_errors();
}
else
{
$file_data = $this->upload->data();
}
यह इतना सरल और यह काफी अच्छी तरह से काम करता है।
अब, आइए अपनी समस्या के मांस को देखें।
$file_name = $_FILES['file_var_name']['name'];
फिर हम एक _
सीमांकक इस तरह के साथ स्ट्रिंग विभाजित कर सकते हैं: सबसे पहले हम $ _FILES सरणी से फ़ाइल नाम प्राप्त करने की आवश्यकता
$file_name_pieces = split('_', $file_name);
फिर हम से अधिक पुनरावृति करना होगा सूची और एक नया स्ट्रिंग जहां सभी पहले स्थान को छोड़कर बड़े अक्षरों बनाती हैं:
$new_file_name = '';
$count = 1;
foreach($file_name_pieces as $piece)
{
if ($count !== 1)
{
$piece = ucfirst($piece);
}
$new_file_name .= $piece;
$count++;
}
अब जब हम नया फ़ाइल नाम है, हम फिर से मिलना कर सकते हैं कि हम क्या ऊपर किया। असल में, तुम सब कुछ एक ही छोड़कर आप इस $ config परम जोड़ने कार्य करें:
$config['file_name'] = $new_file_name;
और है कि यह करना चाहिए! डिफ़ॉल्ट रूप से, सीआई में overwrite
$ कॉन्फ़िगर पैरामीटर FALSE
पर सेट है, इसलिए यदि कोई विवाद हो, तो यह आपके फ़ाइल नाम के अंत तक एक संख्या जोड़ देगा। पैरामीटर की पूरी सूची के लिए, इस पोस्ट के शीर्ष पर स्थित लिंक देखें।
काम किया है ... आप बहुत – jgravois
महान जवाब धन्यवाद! इससे मुझे बहुत मदद मिलती है। –
मैं '_' का उपयोग करने के लिए' _' डिलीमीटर का उपयोग करने से स्विच करने का प्रयास कर रहा हूं। '.' डिलीमीटर पर विस्फोट के संदर्भ में,' _' के बजाय '.' का उपयोग कर फ़ाइल नाम अधिक समझ में आता है। हालांकि, किसी कारण से सहेजने मेरा नाम नहीं ले रहा है, लेकिन '_' का उपयोग करने पर जोर देता है। कोई भी सीआई के साथ छवियों का नाम बदलने की इस तरह की समस्या में भाग लेता है? – TARKUS