সবচেয়ে সাম্প্রতিক ডাব্লুপি আপডেটের পরে এসভিজি ফাইলগুলি আপলোড হচ্ছে না


16

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

কেউ কি জানে ক) শেষ আপডেটের ফলে কী ঘটেছিল এবং খ) আশেপাশে কোনও কাজ কি কেউ জানেন?

আমি সাধারণত কোডটি ব্যবহার করি তা এখানে:

function svg_mime_types( $mimes ) {
   mimes['svg'] = 'image/svg+xml';
   return $mimes;}
add_filter( 'upload_mimes', 'svg_mime_types' );  

অনেক ধন্যবাদ

পল।

উত্তর:


16

ওয়ার্ডপ্রেস ৪.7.১ এ এমন একটি পরিবর্তন চালু করা হয়েছিল যা একটি আপলোড করা ফাইলের প্রকৃত মাইম ধরণের জন্য পরীক্ষা করে। এটি এসভিজি বা ডকএক্সের মতো ফাইলের আপলোড ব্রেক করে। ওয়ার্ডপ্রেস কোরটিতে ইতিমধ্যে এই ইস্যুর জন্য টিকিট রয়েছে, আপনি আরও এটি পড়তে পারেন:

একটি অস্থায়ী এবং প্রস্তাবিত কাজ (এই সমস্যাটি স্থির না হওয়া পর্যন্ত সময়ের জন্য) নিম্নলিখিত প্লাগইন:
রিয়েল এমআইএমএইচ চেক অক্ষম করুন

আপনি যদি সেই প্লাগইনটি ব্যবহার করতে না চান তবে এখানে একই কার্যকারিতা রয়েছে:

add_filter( 'wp_check_filetype_and_ext', function($data, $file, $filename, $mimes) {
    global $wp_version;

    if ( '4.7.2' !== $wp_version ) {
       return $data;
    }

    $filetype = wp_check_filetype( $filename, $mimes );

    return [
        'ext'             => $filetype['ext'],
        'type'            => $filetype['type'],
        'proper_filename' => $data['proper_filename']
    ];

}, 10, 4 );

লক্ষ্য করুন যে এই স্নিপডে ওয়ার্ডপ্রেস আপডেট হওয়ার সাথে সাথেই ফিক্সটি অক্ষম করতে একটি সংস্করণ চেক অন্তর্ভুক্ত রয়েছে।

সম্পাদন করা

ইস্যুটি প্রাথমিকভাবে ৪.7.২ এ স্থির করা হবে। তবে যেহেতু ৪.7.২ একটি জরুরি সুরক্ষা প্রকাশ ছিল , ততক্ষণ ফিক্সটি এটিকে সেই সংস্করণে পরিণত করতে পারেনি। এটি এখন 4.7.3 এ স্থির হওয়ার কথা।


2
বিকাশের পরিবেশের জন্য বিকল্প কাজ: যোগ define( 'ALLOW_UNFILTERED_UPLOADS', true );করুন wp-config.phpএটি উত্পাদনের জন্য নিরাপদ নয়।
টিম ম্যালোন

1
কেবল সমস্ত জায়গায়
টিম ম্যালোন

এর জন্য ধন্যবাদ. এই মুহুর্তে এটি জরুরি অবস্থা নয় তবে আশেপাশে একটি কাজ রয়েছে তা জেনে রাখা ভাল। খুব বেশি প্রশংশিত.
পল 12_

'svg' === strtolower($filetype['ext']);কোনও কাজের প্রয়োজন নেই (বেশিরভাগ ক্ষেত্রে) বা ফাইলটি
এসভিজি

4

দেখে মনে হচ্ছে এটি এই টিকিটের সাথে সম্পর্কিত হতে পারে https://core.trac.wordpress.org/ticket/39552 , এমন কিছুর মতো দেখা যাচ্ছে যা 4.7.1 এ ভেঙে গেছে


আহ ধন্যবাদ ধন্যবাদ। আমি ভেবেছিলাম কিছু ভুল ছিল। আশা করি খুব শীঘ্রই এটি ঠিক হয়ে যাবে।
পল 12_

2

কেউ যা মনে করে কেবল এটিই নিয়ে কাজ করেছে বলে মনে হয় না এবং এটি খুব খারাপ তাই এখানে আমি কীভাবে পরিচালনা করেছি ...

ইতিহাস / পটভূমি

আমি কী ছিল তা দেখে সিএসএস-ট্রিকস নিবন্ধের ভিত্তিতে 2015 সালে একটি এসভিজি আপলোডার তৈরি করেছি। আমি ইমেজ পূর্বরূপের জন্য গ্রিড কাজ করেছিলাম এবং অন্যান্য কয়েকটি সমাধানও ব্যবহার করেছি। সাধারণ প্লাগইন (আইএমও ফাইল-ধরণের প্লাগইনগুলি সহজ হওয়া উচিত)

সমাধান

4.7 এর জন্য কয়েকটি পরিবর্তন ছিল। আসল পিআইটিএ হ'ল image/মাইম টাইপের জন্য ডাব্লুপি এখন ইমেজগুলিতে জিডি ব্যবহার করছে। এটিকে বাইপাস করতে আমি svgএক্সটেনশনটি সেট করে রেখেছি application/svg+xmlযাতে জিডি ফাইলটির সাথে ঝামেলা না করে।

আপডেট: 4.7.2 হিসাবে কিছু উজ্জ্বল স্পার্ক কিছু ক্ষেত্রে এটিও ভেঙে গেছে

তারপরে হুকের মাধ্যমে পরে আমরা এটি আবার গরম করেছি image/svg+xml। অন্যান্য উত্তরে এটি একইরকম ব্যবহৃত হয়, তবে প্রভাবগুলি নির্মূল করতে আমরা প্রথমে এটি আমাদের নির্দিষ্ট ক্ষেত্রে লক করে রাখি (এটি কোনও এসভিজি ফাইল); আমরা পড়ার উপর নির্ভর করতে পারি $data['ext'](কেবলমাত্র একটি তুলনা এবং একটি অ্যারে / হ্যাশ অ্যাক্সেস হিসাবে ফাইলের তথ্য পেতে ফাংশনের চেয়ে সস্তা হওয়া উচিত)।

আপডেট: 4.7.2 হিসাবে$data['ext'] সর্বদা সেট করা হয় না, সুতরাং এখন আমরা যদি ফাইলের নাম ব্যবহার করে এর দৈর্ঘ্য <1 এক্সট্র্যাক্ট (সম্ভাব্য असुरक्षित) এক্সটেনশন হয় strtolower(end(explode('.', $filename)))। ফাইলআইনফোর ব্যবহার করে আমি সত্যিই লড়াইয়ের কারণটি হ'ল মূলত পিএইচপি এক্সটেনশনের উপর নির্ভর করা খুব অস্বচ্ছ এবং সর্বদা সবার জন্য কাজ করে না (বিশেষত যারা এটি না থাকলে এক্সটেনশান সক্ষম করতে অ্যাক্সেস ছাড়াই বা অ্যাক্সেস না করে সংকলন করে না)। আমি এমন কিছু চাই যা কোনও এক্সটেনশনের পরিবর্তে কাজ করে। এটি সঠিক তথ্য রাখার বিষয় তাই আর আউটপুটকে আস্থা FileInfoরাখার এবং এক্সটেনশানটি রাখার ক্ষেত্রে (আমি বিশ্বাস করি এটি 5.5+ এ ডিফল্ট) এটির কাজ করা উচিত। এছাড়াও এটি একটি প্লাগইন হওয়ায় এটি কোনও সংশোধনকারী কোর নয় আপনি এই কোডটি বন্ধ করতে বা হুকটি নিবন্ধভুক্ত করতে পারবেন।

https://github.com/Lewiscowles1986/WordPressSVGPlugin

দেখা

অন্যান্য কর্মক্ষেত্রসমূহ

অপরিবর্তিত আপলোডগুলি মঞ্জুরি দেওয়া একটি ভয়াবহ সমাধান কারণ অন্যরা যেমন বলেছেন যে এই থ্রেডের সাথে সংযোগ স্থাপন করা লোকেরা মিডিয়া আপলোডারের মাধ্যমে পিএইচপি ফাইল আপলোড করতে পারে (এটি খারাপ এবং আপনি যদি এটি করেন তবে আপনার থামিয়ে চিন্তা করা উচিত!)

চেক ব্যতীত যে কোনও ফাংশনের মাধ্যমে প্রতিটি ফাইলকে জোর করা (বিদ্রূপাত্মকভাবে যদি আপনার image/মাইম টাইপ থাকে তবে আপনার কেবল সাধারণ এক্সট চেক থাকতে পারে না)। অপেক্ষাকৃত কুলুঙ্গি সমস্যা সমাধানের জন্য এটি আরও বিস্তৃত পৌঁছানোর প্রভাব তৈরি করার সম্ভাবনা রয়েছে এবং সামগ্রিকভাবে আরও কাজ প্রবর্তন করে (আমার প্লাগইন এডমিন ব্যবহারকারীদের জন্য অ্যাডমিন মিডিয়া ইউআই পেতে আরও কাজ করার জন্য প্রবর্তন করে)

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

আশাকরি এটা সাহায্য করবে.


ঠিক আছে, এই পুরো বিষয়টিকে চালিত করানো মূল সমস্যাটি হ'ল আপলোডকৃত ফাইল প্রকাশের আগে কোনও মধ্যস্থতা নেই। অনুমান করার চেষ্টা করা যায় যে কোনও ফাইল মূলত কেবলমাত্র তার এক্সটেনশনের ভিত্তিতে খারাপ হয় সবসময় একটি খারাপ ধারণা। তত্ত্বগতভাবে অ্যাডমিন দ্বারা সমস্ত আপলোডের অনুমতি দেওয়ার ক্ষেত্রে কোনও সমস্যা নেই তাই প্রস্তাবিত কিছু ফিক্সগুলি সাধারণত খুব প্রশস্ত হতে পারে, বাস্তবে তারা অনেক লোকের পক্ষে যথেষ্ট ভাল হতে পারে। সাইড নোট আইএমএইচও এসভিজি একটি পিডিএফ হিসাবে যতটা চিত্র, প্রযুক্তিগতভাবে তা হয় না।
মার্ক কাপলুন

যে কেউ মাইম-টাইপ নিয়ে এসেছিল সে আপনার সাথে একমত নয়, যেমন বিশ্বজুড়ে ব্রাউজার বিক্রেতারা এবং সফ্টওয়্যার প্রযোজকরা। ওয়ার্ডপ্রেস কেবলমাত্র এক্সটেনশানগুলি পরীক্ষা করে কারণ এটি নেটওয়ার্ক সুরক্ষার অংশ হিসাবে নয় এবং এটি ঠিক আছে (একই কারণে মাইক্রোসফ্ট অফিস আপনার গাড়ি পার্ক করে না)। কমপক্ষে বলা বাহুল্য যে ডাব্লুপিওকে পৃষ্ঠপোষকতার চেয়ে অনেক বেশি চেকিং করা উচিত তবে আমি সম্মত যে আরও সুরক্ষার কাজ হওয়া দরকার, কেবল এই নয় যে ডাব্লুপিপি সেই কাজের জন্য উপযুক্ত বাহন (এটি প্রায় খুব বড়)
মিঃমিসিস

প্রকৃতপক্ষে ব্রাউজারগুলি সমস্ত ধরণের পরিস্থিতিতে ডেভেলপার.মোজিলা.আর.ইন.ইউএস / ডকস / মজিলা / in এর সামগ্রীতে পরিদর্শন করে এবং এগুলি কখনই এক্সটেনশানের দিকে তাকায় না। এবং হ্যাঁ কেউ এই মুহুর্তে ওয়ার্ডপ্রেসকে কঠোর সুরক্ষার দিকে মনোনিবেশ করার প্রত্যাশা করে না;)
মার্ক কাপলুন

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

সবেমাত্র আপলোড করা ফাইলের 256 প্রথম বাইটগুলি পরীক্ষা করে দেখা যায় যে ফাইলটি সম্ভবত মেমরি বা এসএসডি ক্যাশে রয়েছে বলে প্রায় শূন্য পারফরম্যান্স হিট হবে এবং আপনি যখন ফাইলগুলির আকার পরিবর্তন থেকে থাম্বনেইল তৈরি করছেন এবং কী সম্পাদনা করছেন তার সাথে তুলনা করার ক্ষেত্রে এটি কোনও ক্ষেত্রেই থামবে les না. অন্যান্য ব্রাউজারগুলির হিসাবে, ঠিক একই কোড প্রবাহে নয়, তবে এই স্ট্যাকওভারফ্লো.com/Qtionstions/1201945/… থেকে ক্রোম এবং ফায়ারফক্স খুব সংযুক্ত রয়েছে তা ধরে নেওয়া খুব বেশি দূরে নয়
মার্ক ক্যাপলুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.