चित्र URL से अपलोड करें


20

मैं वास्तव में जिस तरह से एसई एक यूआरएल से एक छवि अपलोड करता है (मुझे यकीन है कि कई करते हैं!)। मैं खोज रहा हूँ, लेकिन नहीं मिल रहा है, वहाँ एक प्लगइन या WordPress के लिए इस के समान एक विधि उपलब्ध है?

मुझे पता है कि अपलोड किए जाने / मीडिया सम्मिलित करने के लिए क्लिक करने के बाद फ़ाइल नाम बॉक्स में छवि URL दर्ज करके URL से सीधे एक छवि अपलोड और क्रंच की जा सकती है । कंप्यूटर से >> फ़ाइल चुनें

यहां छवि विवरण दर्ज करें

यह एक महान विशेषता है, लेकिन बहुत व्यापक रूप से ज्ञात नहीं है (मैंने वास्तव में इसे अभी खोजा है)। मैं एसई की तरह कुछ और चाहूंगा, जहां एक विकल्प है जो उपयोगकर्ता को छवि URL जोड़ने के लिए बताता है।

मैं मीडिया अपलोडर में एक नए टैब में केवल अपलोड फ़ाइल फ़ील्ड को जोड़ने के बारे में कैसे जा सकता हूं?

यहाँ Wordpress में Media Upload पेज में एक नया टैब जोड़ने के लिए एक ट्यूटोरियल है , लेकिन मैं केवल कुछ पाठ और फ़ाइल अपलोड फ़ील्ड को उस टैब में जोड़ना चाहता हूं। कोई विचार? मुझे वर्डप्रेस कोडेक्स में कुछ भी नहीं मिला जो इस सुविधा या सीधे फ़ाइल अपलोड फ़ील्ड से संबंधित है।

धन्यवाद।


फ़ीचर अनुरोध trac.wordpress.org पर हैं।
व्य्कॉन

2
सुविधा का अनुरोध नहीं। यह सुविधा पहले से ही निर्मित है।
ट्रैविस पफ्लानज

विंडोज के लिए इस पार @TravisPflanz आया और सोचा कि यह प्रतिभाशाली था - निश्चित रूप से मेरे वर्कफ़्लो में सुधार हुआ। पता है कि मैक में ऐसा करने के लिए? कमांड + शिफ्ट + जी यूआरएल का समर्थन करने के लिए प्रतीत नहीं होता है, लेकिन यह सुनिश्चित नहीं था कि कोई अन्य कमांड था।
user658182

"विंडोज़ फ़्लामेनेजर में url दर्ज करें" पर url से अपलोड करने का लाभ यह है कि फ़ाइल स्रोत से सीधे वर्डप्रेस सर्वर पर लोड होती है; होस्टिंग केंद्रों पर मेरे मामले में पहले मेरे पीसी पर डाउनलोड होने के बजाय गिगाबिट लाइन और फिर धीमे मोबाइल कनेक्शन पर वर्डप्रेस तक।
लीन

URL से सीधे 'अपलोड' करने की ट्रिक विंडोज 10 (किसी भी ब्राउज़र - परीक्षण किए गए फ़ायरफ़ॉक्स, क्रोम, IE11) में काम नहीं करती है, और शायद 2012 के बाद से विंडोज के पिछले संस्करणों में काम नहीं किया है। विंडोज URL से फ़ाइल डाउनलोड करेगा अपने कंप्यूटर पर एक अस्थायी स्थान पर और वहाँ से अपलोड करें। इसलिए इस ट्रिक का उपयोग बड़ी वीडियो फ़ाइलों को 'अपलोड' करने के लिए नहीं किया जा सकता ( PHP और वर्डप्रेस से पहले भी लुक-इन प्राप्त करने से पहले प्रदाता की HTTP 413 प्रतिक्रिया को होस्ट करने के लिए)।
जेक

जवाबों:


24

आप एक php स्क्रिप्ट लिख सकते हैं, या यहाँ इस कोड का अपना प्लगइन बना सकते हैं, मैंने इसे अपनी एक परियोजना में इस्तेमाल किया जहाँ मुझे बड़ी संख्या में चित्र आयात करने पड़े।

सबसे पहले, छवि प्राप्त करें, और इसे अपनी अपलोड-निर्देशिका में संग्रहीत करें:

$uploaddir = wp_upload_dir();
$uploadfile = $uploaddir['path'] . '/' . $filename;

$contents= file_get_contents('http://mydomain.com/folder/image.jpg');
$savefile = fopen($uploadfile, 'w');
fwrite($savefile, $contents);
fclose($savefile);

उसके बाद, हम छवि को मीडिया लाइब्रेरी में सम्मिलित कर सकते हैं:

$wp_filetype = wp_check_filetype(basename($filename), null );

$attachment = array(
    'post_mime_type' => $wp_filetype['type'],
    'post_title' => $filename,
    'post_content' => '',
    'post_status' => 'inherit'
);

$attach_id = wp_insert_attachment( $attachment, $uploadfile );

$imagenew = get_post( $attach_id );
$fullsizepath = get_attached_file( $imagenew->ID );
$attach_data = wp_generate_attachment_metadata( $attach_id, $fullsizepath );
wp_update_attachment_metadata( $attach_id, $attach_data );

और वोइला - यहाँ हम चलते हैं। आप अनुलग्नक सरणी में विभिन्न अन्य पैरामीटर भी सेट कर सकते हैं। अगर आपको उरल्स या ऐसा कुछ मिलता है, तो आप स्क्रिप्ट को लूप में चला सकते हैं - लेकिन ध्यान रखें कि इमेज फंक्शंस को निष्पादित करने में बहुत समय और मेमोरी लगती है।


ओह, मुझे खेद है, मैंने पहली बार में छवि नहीं देखी। हो सकता है कि मैं वास्तव में ऐसा करने वाला एक छोटा सा प्लगइन लिखूंगा। मुझे आशा है कि आप मेरी स्क्रिप्ट के साथ अब तक प्राप्त कर सकते हैं - मैं आपको प्लगइन समाचार पर पोस्ट करता रहूंगा।
फिशी

मुझे लगता है कि मैंने आपकी पोस्ट के अनुसार ही छवि जोड़ी है। दोपहर के भोजन से वापस आने पर मैं और अधिक गहराई से देखूंगा। आपकी सहायता के लिए धन्यवाद! हमेशा सराहना की।
ट्रैविस Pflanz

के उपयोग के file_get_contentsएक यूआरएल के साथ करता है, तो होगा काम नहीं allow_url_fopenअक्षम किया गया है में php.ini- wp_remote_getअलग WP वातावरण भर में अधिक संगत हो जाएगा
highvolt

नमस्ते, उत्तर के लिए धन्यवाद, क्या है wp_generate_attachment_metadataऔर wp_update_attachment_metadata?
gdfgdfg

12

आप फ़ंक्शन का उपयोग कर सकते हैं download_url()और wp_handle_sideload()

download_url()

WordPress HTTP क्लास का उपयोग करके एक स्थानीय अस्थायी फ़ाइल के लिए एक url डाउनलोड करता है। कृपया ध्यान दें कि कॉलिंग फ़ंक्शन को फ़ाइल को अनलिंक () करना होगा।

wp_handle_sideload()

हैंडल साइडलोड, जो पारंपरिक मीडिया अपलोड के बजाय किसी अन्य सर्वर से मीडिया आइटम को पुनर्प्राप्त करने की प्रक्रिया है। इस प्रक्रिया में फ़ाइल नाम को साफ करना, माइम प्रकार के एक्सटेंशन की जांच करना और फ़ाइल को अपलोड निर्देशिका के भीतर उपयुक्त निर्देशिका में ले जाना शामिल है।

उदाहरण:

// Gives us access to the download_url() and wp_handle_sideload() functions
require_once( ABSPATH . 'wp-admin/includes/file.php' );

// URL to the WordPress logo
$url = 'http://s.w.org/style/images/wp-header-logo.png';
$timeout_seconds = 5;

// Download file to temp dir
$temp_file = download_url( $url, $timeout_seconds );

if ( !is_wp_error( $temp_file ) ) {

    // Array based on $_FILE as seen in PHP file uploads
    $file = array(
        'name'     => basename($url), // ex: wp-header-logo.png
        'type'     => 'image/png',
        'tmp_name' => $temp_file,
        'error'    => 0,
        'size'     => filesize($temp_file),
    );

    $overrides = array(
        // Tells WordPress to not look for the POST form
        // fields that would normally be present as
        // we downloaded the file from a remote server, so there
        // will be no form fields
        // Default is true
        'test_form' => false,

        // Setting this to false lets WordPress allow empty files, not recommended
        // Default is true
        'test_size' => true,
    );

    // Move the temporary file into the uploads directory
    $results = wp_handle_sideload( $file, $overrides );

    if ( !empty( $results['error'] ) ) {
        // Insert any error handling here
    } else {

        $filename  = $results['file']; // Full path to the file
        $local_url = $results['url'];  // URL to the file in the uploads dir
        $type      = $results['type']; // MIME type of the file

        // Perform any actions here based in the above results
    }

}

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

यह व्यवस्थापक पक्ष में प्रविष्टियाँ नहीं जोड़ेगा। यदि आप व्यवस्थापक में प्रविष्टियाँ जोड़ना चाहते हैं, तो बेहतर है कि आप उपयोग कर सकते हैं, wp_insert_attachment (); codex.wordpress.org/Function_Reference/wp_insert_attachment या आप इसका उपयोग वैश्विक चर $ _FILES को संशोधित करके कर सकते हैं। media_handle_upload (); codex.wordpress.org/Function_Reference/media_handle_upload
राजेश पनोली

यह बिल्कुल काम नहीं करता है
कैमरून ए

5

वर्डप्रेस प्लगइन निर्देशिका - पकड़ो और सहेजें

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

छवि को हथियाने के बाद, वर्डप्रेस आपको "पोस्ट में डालने" या "परिवर्तन विशेषताओं" को संकेत देगा जैसे आप एक छवि अपलोड करने के बाद करते हैं।


1

वर्डप्रेस में दूरस्थ छवियों को आयात करने के कम से कम तीन तरीके हैं:

  1. ग्रैब और सेव प्लगिन , जिसका उल्लेख अन्य उत्तर में है। यह प्लग-इन थोड़ा पुराना है और यह सीधे फ़ाइल को बचाता है, इसलिए विभिन्न आकारों में थंबनेल नहीं बनाए जाते हैं। लेखन के समय 2 साल पहले अंतिम अद्यतन।

  2. इंपोर्ट एक्सटर्नल इमेज प्लगइन में रिमोट लिंक्ड इमेजेज के लिए बल्क इंपोर्ट है। काम करने के लिए आपको अपनी PHP मेमोरी लिमिट बढ़ानी पड़ सकती है। लेखन के समय 2 साल पहले अंतिम अद्यतन।

  3. URL Plugin से Save & Import Image देशी कार्यों का उपयोग करके छवि को आयात करता है, इसलिए इसे मीडिया गैलरी में ठीक से बनाया गया है और सभी थंबनेल आदि बनाए गए हैं। यह प्लगइन 2016 में अंतिम बार अपडेट किया गया है और वर्डप्रेस 4.7 के साथ काम करता है

प्रकटीकरण: मैंने URL प्लगइन से सेव एंड इम्पोर्ट इमेज बनाई

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.