کلاس WP_REST_Attachments_Controller در وردپرس و متد check_upload_size()

wordpress wp rest attachments controller upload size
04 تیر 1404

بررسی بیشتر در مورد کلاس WP_REST_Attachments_Controller::check_upload_size()


سلام! امروز می‌خواهیم بریم سراغ یک بخش جالب از WordPress به نام کلاس WP_REST_Attachments_Controller و به‌خصوص متد check_upload_size() آن. این متد کاربردی، به ما این امکان را می‌دهد تا اندازه فایل‌هایی که به سایت خود آپلود می‌کنیم را بررسی کنیم. این مورد می‌تواند نه تنها به حفظ فضای سرور کمک کند بلکه از بارگذاری فایل‌های بزرگ و غیرمناسب نیز جلوگیری می‌کند.


تصور کن که یک سایت وردپرسی داری و می‌خواهی تصاویر را به راحتی اپلود کنی. اما اگر سایز هر عکسی بیش از حد مجاز باشد، سیستم طبیعی است که باید خطایی بدهد. در واقع، متد check_upload_size() به ما این امکان را می‌دهد تا قبل از اینکه فایل به سرور ارسال شود، بررسی‌های لازم را انجام دهیم و مطمئن شویم که همه چیز در کمال آرامش پیش برود.


این متد خود یکی از کاربردهای REST API در وردپرس است. به عنوان مثال، اگر شما در حال استفاده از یک برنامه جاوااسکریپتی برای اپلود فایل‌ها باشید، می‌توانید از این متد قبل از ارسال فایل‌ها به سرور استفاده کنید تا اندازه فایل‌ها را بررسی کنید و اطمینان حاصل کنید که سایز آن‌ها مجاز است یا خیر.


حالا برای اینکه بیشتر با این کلاس و متدهاش آشنا بشیم، بیایید کمی در کد زیر بررسی کنیم.


public function check_upload_size( $file ) {
$max_upload_size = wp_max_upload_size();
if ( $file[ 'size' ] > $max_upload_size ) {
return new WP_Error( 'upload_size_exceeded', __( 'File is too large.', 'text-domain' ), array( 'status' => 413 ) );
}
return true;
}

توضیحات کد


در اینجا یک متد به نام check_upload_size داریم که پارامتر $file را دریافت می‌کند. این پارامتر شامل اطلاعات فایل مورد نظر است.




سپس ما حداکثر اندازه آپلود مجاز را با استفاده از تابع wp_max_upload_size() به دست می‌آوریم.




بعد از آن، فایل را بررسی می‌کنیم که آیا سایز آن بیشتر از مقدار مجاز است یا نه. اگر سایز فایل بزرگ‌تر باشد، یک اشکال جدید از نوع WP_Error برمی‌گردانیم و خطای مناسبی را با وضعیت HTTP 413 ارسال می‌کنیم.




اگر سایز فایل مجاز باشد، با بازگشت true، نشان می‌دهیم که فایل برای آپلود مجاز است.


سوالات متداول

؟

چجوری می‌تونم سایز فایل‌هایی که می‌خوام آپلود کنم رو محدود کنم؟

؟

آیا این متد فقط برای تصاویر کار می‌کند؟

؟

اگر سایز فایل بیش از حد مجاز باشد، چه اتفاقی می‌افتد؟

؟

چطور می‌تونم خطاهای مربوط به سایز فایل‌ها رو نمایش بدم؟