ইউআরএল থেকে চিত্র আপলোড


20

কোনও ইউআরএল থেকে এসই কোনও চিত্র আপলোড করে তা আমি সত্যিই পছন্দ করি (আমি নিশ্চিত অনেকেই করেন!)। আমি অনুসন্ধান করেছিলাম, কিন্তু খুঁজে পাচ্ছি না, ওয়ার্ডপ্রেসের জন্য এটির অনুরূপ কোনও প্লাগইন বা কোনও পদ্ধতি আছে কি?

আমি জানি যে আপনি আপলোড / সন্নিবেশ মিডিয়া >> কম্পিউটার থেকে >> ফাইল নির্বাচন করুন ক্লিক করুন তার পরে ফাইলের নাম বাক্সে চিত্রের URL টি প্রবেশ করে একটি চিত্র সরাসরি ইউআরএল থেকে আপলোড এবং ক্রুঞ্চ করা যায় File

এখানে চিত্র বর্ণনা লিখুন

এটি একটি দুর্দান্ত বৈশিষ্ট্য, তবে খুব বেশি পরিচিত নয় (আমি আসলে এটি সন্ধান করেছি)। আমি এসই এর মতো আরও কিছু চাই, যেখানে এমন একটি বিকল্প রয়েছে যা ব্যবহারকারীকে চিত্রের URL যুক্ত করতে জানায় add

মিডিয়া আপলোডারের কোনও নতুন ট্যাবে কেবল আপলোড ফাইলের ক্ষেত্রটি যুক্ত করতে আমি কীভাবে যেতে পারি?

ওয়ার্ডপ্রেসে মিডিয়া আপলোড পৃষ্ঠায় কীভাবে একটি নতুন ট্যাব যুক্ত করা যায় তার একটি টিউটোরিয়াল এখানে রয়েছে তবে আমি সেই ট্যাবে কেবলমাত্র কিছু পাঠ্য এবং ফাইল আপলোড ক্ষেত্র যুক্ত করতে চাই। কোন ধারনা? আমি ওয়ার্ডপ্রেস কোডেক্সে এমন কিছু খুঁজে পাইনি যা এই বৈশিষ্ট্যটি সরাসরি ফাইল আপলোড ক্ষেত্রের সাথে সম্পর্কিত করে।

ধন্যবাদ।


বৈশিষ্ট্য অনুরোধগুলি trac.wordpress.org এ অন্তর্ভুক্ত।
উইক

2
কোনও বৈশিষ্ট্যের অনুরোধ নয়। বৈশিষ্ট্যটি ইতিমধ্যে অন্তর্নির্মিত
ট্র্যাভিস পিফ্লানজ

@ ট্র্যাভিসপ্ল্যাঞ্জ এটি উইন্ডোজের জন্য এসেছিল এবং ভেবেছিল এটি প্রতিভা - অবশ্যই আমার কাজের প্রবাহকে উন্নত করেছে। যাইহোক ম্যাক এ কি করতে জানেন? কমান্ড + শিফট + জি ইউআরএল সমর্থন করে না বলে মনে হয় তবে অন্য কোনও কমান্ড আছে কিনা তা নিশ্চিত ছিল না।
ব্যবহারকারী 658182

"উইন্ডোজ ফাইল ম্যানেজারে ইউআরএল প্রবেশ করুন" এর উপর url থেকে আপলোড করার সুবিধাটি হ'ল ফাইলটি উত্স থেকে সরাসরি ওয়ার্ডপ্রেস সার্ভারে লোড করা হয়; হোস্টিং কেন্দ্রগুলির উপর আমার ক্ষেত্রে প্রথমে আমার পিসিতে ডাউনলোড করার পরিবর্তে গিগাবিট লাইন এবং ধীর মোবাইল সংযোগের পরে ওয়ার্ডপ্রেস পর্যন্ত।
লেন

কোনও ইউআরএল থেকে সরাসরি 'আপলোড' করার কৌশলটি উইন্ডোজ 10 (কোনও ব্রাউজারে - পরীক্ষিত ফায়ারফক্স, ক্রোম, আই 11) তে কাজ করে না এবং সম্ভবত ২০১২ সাল থেকে উইন্ডোজের পূর্ববর্তী সংস্করণগুলিতে কাজ করেনি। উইন্ডোজ ইউআরএল থেকে ফাইলটি ডাউনলোড করবে আপনার কম্পিউটারে একটি অস্থায়ী অবস্থানে যান এবং সেখান থেকে আপলোড করুন। সুতরাং এই কৌশলটি বড় ভিডিও ফাইলগুলি 'আপলোড' করতে ব্যবহার করা সম্ভব নয় ( পিএইচপি এবং ওয়ার্ডপ্রেস এমনকি চেহারা-পাওয়ার আগে হোস্টিং সরবরাহকারীর HTTP 413 প্রতিক্রিয়াটি বাইপাস করতে )।
জ্যাক

উত্তর:


24

আপনি একটি পিএইচপি স্ক্রিপ্ট লিখতে পারেন, বা এই কোডটির নিজস্ব প্লাগইন তৈরি করতে পারেন, আমি এটি আমার এমন একটি প্রকল্পে ব্যবহার করেছি যেখানে আমাকে প্রচুর পরিমাণে চিত্র আমদানি করতে হয়েছিল।

প্রথমে চিত্রটি পান এবং এটি আপনার আপলোড-ডিরেক্টরিতে সঞ্চয় করুন:

$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);

এর পরে, আমরা মিডিয়া লাইব্রেরিতে চিত্রটি sertোকাতে পারি:

$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 );

এবং ভয়েলা - আমরা এখানে যাই। সংযুক্তি অ্যারেতে আপনি অন্যান্য বিভিন্ন পরামিতিও সেট করতে পারেন। যদি আপনি url এর অ্যারে বা এর মতো কিছু পেয়ে থাকেন তবে আপনি স্ক্রিপ্টটি একটি লুপে চালাতে পারেন - তবে সচেতন হন যে চিত্রটির ফাংশনগুলি কার্যকর করতে অনেক সময় এবং মেমরি নেয় up


ওহ, আমি দুঃখিত, আমি ছবিটি প্রথমে দেখিনি। সম্ভবত আমি এটি করতে একটি ছোট প্লাগইন লিখব। আমি আশা করি আপনি এখন পর্যন্ত আমার স্ক্রিপ্টটি সাথে পেতে পারেন - আমি আপনাকে প্লাগইন সংবাদ পোস্ট করব।
ফিশচি

আমি মনে করি আপনি যেমন পোস্ট করেছেন ঠিক তেমনই আমি চিত্রটি যুক্ত করেছি। আমি মধ্যাহ্নভোজন থেকে ফিরে আসার পরে আরও গভীরতর চেহারা নেব। আপনার সাহায্যের জন্য ধন্যবাদ! সর্বদা প্রশংসা।
ট্র্যাভিস প্লাফ্লানজ

file_get_contentsযদি allow_url_fopenঅক্ষম করা থাকে তবে কোনও ইউআরএল ব্যবহার করা কার্যকর হবে না php.ini- wp_remote_getবিভিন্ন ডাব্লুপি পরিবেশের জন্য আরও উপযুক্ত হবে
হাইভোল্ট

হাই, উত্তরের জন্য ধন্যবাদ, কি জন্য wp_generate_attachment_metadataএবং wp_update_attachment_metadata?
gdfgdfg

12

আপনি ফাংশন download_url()এবং ব্যবহার করতে পারেন wp_handle_sideload()

download_url()

ওয়ার্ডপ্রেস এইচটিটিপি ক্লাস ব্যবহার করে স্থানীয় অস্থায়ী ফাইলে একটি url ডাউনলোড করে। দয়া করে নোট করুন যে কলিং ফাংশনটি অবশ্যই ফাইলটি লিঙ্কমুক্ত করে ()।

wp_handle_sideload()

সিডেলোডগুলি হ্যান্ডেল করুন যা aতিহ্যবাহী মিডিয়া আপলোডের পরিবর্তে অন্য সার্ভার থেকে মিডিয়া আইটেম পুনরুদ্ধারের প্রক্রিয়া। এই প্রক্রিয়াটির মধ্যে ফাইলের নাম স্যানিটাইজিং, মাইম প্রকারের জন্য এক্সটেনশনগুলি পরীক্ষা করা এবং আপলোড ডিরেক্টরিতে ফাইলটিকে উপযুক্ত ডিরেক্টরিতে সরিয়ে নেওয়া অন্তর্ভুক্ত।

উদাহরণ:

// 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 (); কোডেক্স.ওয়ার্ডপ্রেস.আর. / ফাংশন_রিফারেন্স / ডাব্লুপি_সিনেট_এটাচমেন্ট বা আপনি এটি $ _FILES গ্লোবাল ভেরিয়েবল পরিবর্তন করে ব্যবহার করতে পারেন। media_handle_upload (); কোডেক্স.ওয়ার্ডপ্রেস.আর.
ফাংশন_প্রকাশ /

এটি মোটেও কাজ করে না
ক্যামেরন এ

5

ওয়ার্ডপ্রেস প্লাগইন ডিরেক্টরি - ধরুন এবং সংরক্ষণ করুন

এই প্লাগইন আপনাকে দূরবর্তী url থেকে চিত্র দখল করতে এবং আপনার নিজস্ব ওয়ার্ডপ্রেস মিডিয়া লাইব্রেরিতে সংরক্ষণ করতে দেয়। এটি করে, আপনি কখনই উদ্বিগ্ন হননি যে দূরবর্তী চিত্রটি তার মালিক দ্বারা সরিয়ে দেওয়া হয়েছে। এটি স্থানীয় কম্পিউটারে চিত্র ডাউনলোড করতে এবং আপনার নিজের ওয়ার্ডপ্রেসে আবার আপলোড করার পদক্ষেপগুলিও সংরক্ষণ করে।

ছবিটি ধরার পরে, ওয়ার্ডপ্রেস আপনাকে "পোস্টে sertোকান" বা "চিত্র পরিবর্তন করতে" অনুরোধ করবে ঠিক যেমন আপনি কোনও ছবি আপলোড করার পরে।


1

ওয়ার্ডপ্রেসে দূরবর্তী চিত্রগুলি আমদানির জন্য কমপক্ষে তিনটি উপায় রয়েছে:

  1. অন্য উত্তরে উল্লিখিত গ্র্যাব এবং সেভ প্লাগইন । এই প্লাগ-ইনটি কিছুটা পুরানো এবং এটি সরাসরি ফাইলটি সংরক্ষণ করে, তাই বিভিন্ন আকারের থাম্বনেইল তৈরি হয় না। লেখার সময় 2 বছর আগে সর্বশেষ আপডেট।

  2. বহিরাগত চিত্র আমদানি করুন প্লাগইন দূরবর্তী লিঙ্কযুক্ত চিত্রগুলির জন্য বাল্ক আমদানি করে। এটি কাজ করার জন্য আপনার পিএইচপি মেমরির সীমা বাড়ানোর প্রয়োজন হতে পারে। লেখার সময় 2 বছর আগে সর্বশেষ আপডেট।

  3. ইউআরএল থেকে চিত্র সংরক্ষণ করুন এবং আমদানি করুন প্লাগইন দেশীয় ফাংশনগুলি ব্যবহার করে চিত্রটি আমদানি করে, তাই এটি মিডিয়া গ্যালারীটিতে সঠিকভাবে তৈরি করা হয় এবং সমস্ত থাম্বনেইল ইত্যাদি তৈরি করা হয়। এই প্লাগইনটি সর্বশেষে ২০১ 2016 সালে আপডেট হয়েছে এবং ওয়ার্ডপ্রেস ৪.7 এর সাথে কাজ করে

প্রকাশ: আমি ইউআরএল প্লাগইন থেকে চিত্র সংরক্ষণ এবং আমদানি তৈরি করেছি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.