মিডিয়া আপলোডার ব্যবহার করে ভুল আকারের চিত্র আপলোড প্রত্যাখ্যান করুন


12

পোস্ট সম্পাদনার স্ক্রিনে কাস্টম ফিল্ডগুলিতে চিত্র যুক্ত করার জন্য আমি একটি সুপার-কড়া সেটিংয়ের কাজ করছি। আমার অনুকূল পরিস্থিতিটি হ'ল এ কাস্টম ত্রুটি বার্তা যুক্ত করা যখন ব্যবহারকারী সেই নির্দিষ্ট কাস্টম মানের জন্য ভুল আকারের একটি চিত্র আপলোড করার চেষ্টা করে।

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

আমি আপলোডের পরে পোস্ট চিত্রগুলি থেকে আলাদা আলাদা বৈশিষ্ট্যযুক্ত চিত্র সম্পর্কেও অবগত তবে আমি একটি প্রাক-সঞ্চয় সমাধান চাই।

এটি দেখতে এরকম কিছু দেখাচ্ছে:

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

আমরা কোন wp_handle_upload_prefilterক্ষেত্রটির সাথে কথা বলছি (বা অনুরূপ) কীভাবে জানাতে হবে সে সম্পর্কে কোনও ধারণা ?


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

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

হ্যাঁ, ফ্ল্যাশ আপলোডারের দিনগুলিতে আমি এর আগেও এরকম কিছু করেছি। আমি এবার ক্লিনার হয়ে যাচ্ছিলাম, তবে এটি সম্ভবত সম্ভব নাও হতে পারে। যে তাকান, ধন্যবাদ!
মোড়ালিদা

আমি আপনাকে শুনছি, তবে আমি আসলে এটি করার কোনও উপায় এটি খারাপ বলে মনে করি না। এছাড়াও, যেমনটি আমি বলেছিলাম, আমি এটি করার জন্য অন্য কোনও উপায় দেখছি / জানি না, তবে এটি পরিষ্কার করার জন্য আরও জ্ঞানের পাশাপাশি কেউ আসতে পারে।
নিকোলাই

1
আপনি কি এই নিয়ে এগিয়ে যাচ্ছেন? যদি না হয় তবে আপনি যে কোডটি নিয়ে কাজ করছেন তার কিছু আছে, এটি পোস্ট করুন। যদি প্রশ্নটির আরও ভিত্তি থাকে তবে আমি সেটাকে সেটআপ করতে রাজি আছি।
নিকোলাই

উত্তর:


4

আপনার হ্যান্ডলারে, যদি আপনি 'ত্রুটি' সেট করেন তবে ত্রুটি বার্তা প্রদর্শিত হবে এবং আপলোডটি বাতিল করে দেবে

add_filter( 'wp_handle_upload_prefilter', 'custom_upload_filter' );

function custom_upload_filter( $file ) {
    $image_info   = getimagesize( $file['tmp_name'] );
    $image_width  = $image_info[0];
    $image_height = $image_info[1];

    if ( $image_with !== 800 || $image_height !== 600 ) {
        $file['error'] = __( 'Images must be sized exactly 800 * 600', 'your_textdomain' );
    }
    return $file;
}

যদি আপনার ব্যবহারকারী কোনও ভিন্ন আকার আপলোড করার চেষ্টা করে তবে বার্তাটি হ'ল:

thefile.png has failed to upload due to an error  
Size must be exactly 800 * 600

নোটটি wp_handle_upload_prefilterআপলোড প্রক্রিয়াকরণের খুব প্রথম দিকে আসে, তাই আপনি ফাইলটি সঠিকভাবে আপলোড করা হয়েছে কিনা তা পরীক্ষা করতে চাইতে পারেন (এইচটিটিপি স্ট্যান্ডপয়েন্ট থেকে) এবং আকারটি পরীক্ষা করার আগে একটি চিত্র is

রেফ: wp_handle_upload()মূল ফাইলে ফান্টwp-admin/includes/file.php


হ্যাঁ, ফাইলনাম এবং এসভিজি বৈশিষ্ট্য যাচাই করতে আমি ইতিমধ্যে এটি করছি। আমার এখনই যা প্রয়োজন তা হল সেই (বা অন্য) ফিল্টারটিতে অন্য একটি প্যারামিটারটি পাস করার একটি উপায়, যা আপলোড দিয়ে কোন ক্ষেত্রটি জনবহুল হচ্ছে তা নির্দেশ করে যাতে আমি বিভিন্ন ক্ষেত্রের জন্য বিভিন্ন বিধিনিষেধ প্রয়োগ করতে পারি। এটি এখনই হোল্ডে রয়েছে। আমি আমার অনুসন্ধানগুলি পরে প্রশ্নটি আপডেট করব।
মোড়ালিদা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.