अपलोड निर्देशिका को wp_handle_upload में कैसे बदलें


9

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

मैं इस लिंक पर आया था जिसके बारे में मुझे लगा कि इसके कुछ सुराग हो सकते हैं - http://yoast.com/smarter-upload-handling-wp-plinins

if(strtolower($_SERVER['REQUEST_METHOD']) == "post"){

     $overrides = array('test_form' => false);
     $file = wp_handle_upload($_FILES['binaryFile'], $overrides);

     echo "<pre>" . print_r($file, true) . "</pre>";
}

मैं अपने चयन की निर्देशिका को कैसे अपलोड कर सकता हूं?

किसी भी मदद की बहुत सराहना की दोस्तों।

जवाबों:


5

हम इसे आसान डिजिटल डाउनलोड में कैसे करते हैं, इसके लिए एक पूर्ण उदाहरण यहां दिया गया है:

/**
 * Set Upload Directory
 *
 * Sets the upload dir to edd. This function is called from
 * edd_change_downloads_upload_dir()
 *
 * @since 1.0
 * @return array Upload directory information
*/
function edd_set_upload_dir( $upload ) {
    $upload['subdir'] = '/edd' . $upload['subdir'];
    $upload['path'] = $upload['basedir'] . $upload['subdir'];
    $upload['url']  = $upload['baseurl'] . $upload['subdir'];
    return $upload;
}


/**
 * Change Downloads Upload Directory
 *
 * Hooks the edd_set_upload_dir filter when appropriate. This function works by
 * hooking on the WordPress Media Uploader and moving the uploading files that
 * are used for EDD to an edd directory under wp-content/uploads/ therefore,
 * the new directory is wp-content/uploads/edd/{year}/{month}. This directory
 * provides protection to anything uploaded to it.
 *
 * @since 1.0
 * @global $pagenow
 * @return void
 */
function edd_change_downloads_upload_dir() {
    global $pagenow;

    if ( ! empty( $_REQUEST['post_id'] ) && ( 'async-upload.php' == $pagenow || 'media-upload.php' == $pagenow ) ) {
        if ( 'download' == get_post_type( $_REQUEST['post_id'] ) ) {
            add_filter( 'upload_dir', 'edd_set_upload_dir' );
        }
    }
}
add_action( 'admin_init', 'edd_change_downloads_upload_dir', 999 );

ध्यान दें, हम अपने डाउनलोड कस्टम पोस्ट टाइप पेज से फाइल अपलोड करते समय केवल अपलोड निर्देशिका को संशोधित करते हैं। आपको इसे अपने प्लगइन के सेटिंग पृष्ठ के लिए समायोजित करना होगा।
पिप्पिन

इसकी कमी "]" के साथ$upload['url'
मारियो रेडोमनाना

1

मुझे याद नहीं है कि वास्तव में ऐसा करना व्यवहार में है, लेकिन अधिकांश (सभी?) अपलोड पथ हैंडलिंग wp_upload_dir()उस upload_dirजानकारी के लिए फ़िल्टर लागू करता है। आपको अपने कोड के चलने की अवधि और वांछित स्थान पर पथ समायोजित करने के लिए इसे फ़िल्टर करने का प्रयास करना चाहिए।


इस विधि को लागू करना आसान है। इस लिंक पर एक उदाहरण पाया जा सकता है, ( codex.wordpress.org/Plugin_API/Filter_Reference/…
AlanP
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.