I am searching online and all I can see is how to increase file size for media upload, which I know how to do with php.ini
, but what I need to do is limit the file size for media upload only.
The client and his associates have trouble with understanding: Please do not upload images that are bigger than 1MB because your site will load forever.
They keep uploading images that are over 8 MB in size, and the whole site takes over 30 sec to load. It's horrendous.
So I was thinking - if it's possible to limit the image upload to 1 MB or so without affecting the general upload_max_filesize
which will influence the ability to upload themes and plugins (and I don't want that to happen).
Any idea if this can be done?
I am searching online and all I can see is how to increase file size for media upload, which I know how to do with php.ini
, but what I need to do is limit the file size for media upload only.
The client and his associates have trouble with understanding: Please do not upload images that are bigger than 1MB because your site will load forever.
They keep uploading images that are over 8 MB in size, and the whole site takes over 30 sec to load. It's horrendous.
So I was thinking - if it's possible to limit the image upload to 1 MB or so without affecting the general upload_max_filesize
which will influence the ability to upload themes and plugins (and I don't want that to happen).
Any idea if this can be done?
Share Improve this question edited May 31, 2016 at 10:00 fuxia♦ 107k38 gold badges255 silver badges459 bronze badges asked May 31, 2016 at 8:09 dingo_ddingo_d 1,9602 gold badges25 silver badges48 bronze badges4 Answers
Reset to default 13Yes, you can use the wp_handle_upload_prefilter
that allows you to stop the uploading process if a specific condition is not accomplished.
In your case, you could try this code snippet:
function limit_upload_size( $file ) {
// Set the desired file size limit
$file_size_limit = 1024; // 1MB in KB
// exclude admins
if ( ! current_user_can( 'manage_options' ) ) {
$current_size = $file['size'];
$current_size = $current_size / 1024; //get size in KB
if ( $current_size > $file_size_limit ) {
$file['error'] = sprintf( __( 'ERROR: File size limit is %d KB.' ), $file_size_limit );
}
}
return $file;
}
add_filter ( 'wp_handle_upload_prefilter', 'limit_upload_size', 10, 1 );
Hope it helps!
You can hook into upload_size_limit
and set a maximum filesize:
// Change the upload size to 1MB
add_filter( 'upload_size_limit', 'wpse_228300_change_upload_size' );
function wpse_228300_change_upload_size()
{
return 1000 * 1024;
}
For me this is works great !
function my_max_image_size( $file ) {
$size = $file['size'];
$size = $size / 1024;
$type = $file['type'];
$is_image = strpos( $type, 'image' ) !== false;
$limit = 750;
$limit_output = '750kb';
if ( $is_image && $size > $limit ) {
$file['error'] = 'Image files must be smaller than ' . $limit_output;
}
return $file;
}
add_filter( 'wp_handle_upload_prefilter', 'my_max_image_size' );
1: Theme Functions File
There are cases where we have seen that just by adding the following code in the theme function’s file, you can increase the upload size:
@ini_set( 'upload_max_size' , '64M' );
@ini_set( 'post_max_size', '64M');
@ini_set( 'max_execution_time', '300' );
2. Create or Edit an existing PHP.INI file
In most cases if you are on a shared host, you will not see a php.ini file in your directory. If you do not see one, then create a file called php.ini and upload it in the root folder. In that file add the following code:
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
3. htaccess Method
Some people have tried using the htaccess method where by modifying the .htaccess
file in the root directory, you can increase the maximum upload size in WordPress. Open or create the .htaccess
file in the root folder and add the following code:
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1742337949a4425031.html
评论列表(0条)