2011-11-21 20 views
11

मेरे पास एक अपलोड फॉर्म है जहां उपयोगकर्ता वर्तमान में 'temp' नामक फ़ोल्डर में अपलोड किए जा रहे चित्र अपलोड कर सकते हैं और उनके स्थान $ _SESSION ['upload_photos'] नामक सरणी में सहेजे गए हैं। एक बार जब उपयोगकर्ता 'अगला पृष्ठ' बटन दबाता है, तो मैं चाहता हूं कि यह फ़ाइलों को एक नए फ़ोल्डर में स्थानांतरित करें जो गतिशील रूप से उसके ठीक पहले बनाया गया हो।मैं php का उपयोग कर फ़ाइल को किसी अन्य फ़ोल्डर में कैसे स्थानांतरित कर सकता हूं?

if(isset($_POST['next_page'])) { 
    if (!is_dir('../images/uploads/listers/'.$_SESSION['loggedin_lister_id'])) { 
    mkdir('../images/uploads/listers/'.$_SESSION['loggedin_lister_id']); 
    } 

    foreach($_SESSION['uploaded_photos'] as $key => $value) { 
    $target_path = '../images/uploads/listers/'.$_SESSION['loggedin_lister_id'].'/'; 
    $target_path = $target_path . basename($value); 

    if(move_uploaded_file($value, $target_path)) { 
     echo "The file ". basename($value). " has been uploaded<br />"; 
    } else{ 
     echo "There was an error uploading the file, please try again!"; 
    } 

    } //end foreach 

} //end if isset next_page 

एक $ मूल्य है कि इस्तेमाल किया जा रहा के लिए एक उदाहरण है:

../images/uploads/temp/IMG_0002.jpg

और एक $ target_path का एक उदाहरण उपयोग किया जा रहा है:

../images/uploads/listers/186/IMG_0002.jpg

मैं temp फ़ोल्डर में बैठी फ़ाइल देख सकता हूं, दोनों पथ मेरे लिए अच्छे लगते हैं और मैंने यह सुनिश्चित करने के लिए जांच की है कि mkdir फ़ंक्शन वास्तव में उस फ़ोल्डर को बनाया गया है जो उसने अच्छा किया था।

मैं php का उपयोग कर फ़ाइल को किसी अन्य फ़ोल्डर में कैसे स्थानांतरित कर सकता हूं?

उत्तर

20

जैसा कि मैंने आपके परिदृश्य को पढ़ा है, ऐसा लगता है कि आपने अपलोड को संभाला है और फ़ाइलों को आपके 'temp' फ़ोल्डर में ले जाया है, और अब जब आप एक नई कार्रवाई को perfom करते हैं तो फ़ाइल को स्थानांतरित करना चाहते हैं (अगला बटन पर क्लिक करना)।

जहां तक ​​PHP का संबंध है - आपके 'temp' में फ़ाइलें अब फाइलें अपलोड नहीं की गई हैं, इसलिए आप move_uploaded_file का उपयोग नहीं कर सकते हैं।

if(isset($_POST['next_page'])) { 
    if (!is_dir('../images/uploads/listers/'.$_SESSION['loggedin_lister_id'])) { 
    mkdir('../images/uploads/listers/'.$_SESSION['loggedin_lister_id']); 
    } 

    foreach($_SESSION['uploaded_photos'] as $key => $value) { 
    $target_path = '../images/uploads/listers/'.$_SESSION['loggedin_lister_id'].'/'; 
    $target_path = $target_path . basename($value); 

    if(rename($value, $target_path)) { 
     echo "The file ". basename($value). " has been uploaded<br />"; 
    } else{ 
     echo "There was an error uploading the file, please try again!"; 
    } 

    } //end foreach 

} //end if isset next_page 
:

तुम सब करने की ज़रूरत उपयोग rename है

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

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