तो मैं के रूप में वर्णित rename()
फ़ंक्शन का उपयोग करने की कोशिश की और मैं त्रुटि वापस पाने था रखा no such file or directory
मैंने कोड को एक और कथन के भीतर रखा ताकि यह सुनिश्चित किया जा सके कि वास्तव में निर्देशिकाएं बनाई गई हैं। यह इस तरह से देखा:
$tempDir = '/home/site/images/tmp/';
$permanentDir = '/home/site/images/' . $claimid; // this was stored above
mkdir($permanentDir,0775);
if(is_dir($permanentDir)){
echo $permanentDir . ' is a directory';
if(is_dir($tempDir)){
echo $tempDir . ' is a directory';
}else{
echo $tempDir . ' is not a directory';
}
}else{
echo $permanentDir . ' is not a directory';
}
rename($tempDir . "*", $permanentDir);
तो जब मैं कोड फिर से भाग गया, इसे थूक से बाहर है कि दोनों रास्तों निर्देशिका थे। मैं फंस गया था। मैंने एक सहकर्मी से बात की और उसने सुझाव दिया, "क्यों न केवल नई निर्देशिका में अस्थायी निर्देशिका का नाम बदलें, क्योंकि आप सभी फाइलों को वैसे भी ले जाना चाहते हैं?"
बाहर निकलता है, यही वह है जो मैंने किया। मैंने rename()
फ़ंक्शन के साथ वाइल्डकार्ड का उपयोग करने की कोशिश छोड़ दी और इसके बजाय अस्थायी निर्देशिका में अस्थायी निर्देशिका का नाम बदलने के लिए बस rename()
का उपयोग करें।
तो ऐसा लगता है।
$tempDir = '/home/site/images/tmp/';
$permanentDir = '/home/site/images/' . $claimid; // this was stored above
mkdir($permanentDir,0775);
rename($tempDir, $permanentDir);
यह मेरी प्रयोजनों के लिए खूबसूरती से काम किया क्योंकि मैं पुराने tmp निर्देशिका फ़ाइलें अपलोड किया गया है के बाद और "चले गए" की जरूरत नहीं है वहाँ रहने के लिए।
उम्मीद है कि इससे मदद मिलती है। अगर कोई जानता है कि वाइल्डकार्ड rename()
फ़ंक्शन में क्यों काम नहीं करता है और मुझे ऊपर बताई गई त्रुटि क्यों मिल रही है, तो कृपया मुझे बताएं।
आप मूल निर्देशिका रखने के लिए की जरूरत है? – Sampson
मूल फ़ोल्डर को रखना अच्छा होगा ... इस बार नहीं, लेकिन शायद एक और बार मुझे इसे रखना होगा .. मुझे संदेह हो सकता है कि आपका दृष्टिकोण क्या है =) – ajsie
लेकिन मैंने देखा कि Ive गंतव्य फ़ोल्डर में फ़ाइलें मिली है I रखना की इच्छा है। और फिर आपका दृष्टिकोण काम नहीं करता है क्योंकि यह फ़ोल्डर को किसी गंतव्य फ़ोल्डर में स्थानांतरित करने की अनुमति नहीं देता है जिसमें पहले से ही – ajsie