- Getting Started
- Browser Support
- Languages Support
- Shortcuts
- Activation
- Examples
- Customize the Editor
- Use-cases
- Plugins
- APIs
- Development Frameworks
- Server Integrations
- Server SDKs
- Migration Guides
- Changelog
- Tutorials
PHP Image Validation
How it works
- Upload image to the server.
- Validate image on the server side before storing it.
Image Upload
The Server Upload section describes the steps to upload an image to a server. You can validate images when you insert them in the editor, however that only checks the filename and not the mime type. It is advisable to make additional checks on the server side to make sure users only upload valid image formats.
Validate Extension
The editor's PHP SDK can check the image extension before storing it on disk, and can also check the mime type.
$options = array(
'validation' => array(
'allowedExts' => array('gif', 'jpeg', 'jpg', 'png', 'svg', 'blob'),
'allowedMimeTypes' => array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/x-png', 'image/png', 'image/svg+xml')
)
);
// Store the image.
$response = FroalaEditor_Image::upload('/uploads/', $options);
Custom Validation
You can also pass a custom method instead of validating the extension and mime type. This gives you full control on what types of images you want to store on disk. Below is an example of how to validate if an image is square.
$options = array(
'validation' => function ($filePath, $mimetype) {
// Create Imagick object;
$imagick = new \Imagick($filePath);
// Get image size.
$size = $imagick->getImageGeometry();
// Destroy Imagick object.
$imagick->destroy();
// Check if image is square.
if ($size['width'] != $size['height']) {
return false;
}
return true;
}
);
$response = FroalaEditor_Image::upload('/uploads/', $options);
Complete Example
<script>
new FroalaEditor('.selector', {
// Set the image upload URL.
imageUploadURL: '/image_upload.php'
})
</script>
<?php
// Include the editor SDK.
require 'PATH_TO_FROALA_SDK/lib/froala_editor.php';
$options = array(
'validation' => array(
'allowedExts' => array('gif', 'jpeg', 'jpg', 'png', 'svg', 'blob'),
'allowedMimeTypes' => array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/x-png', 'image/png', 'image/svg+xml')
)
);
// Store the image.
try {
$response = FroalaEditor_Image::upload('/uploads/', $options);
echo stripslashes(json_encode($response));
}
catch (Exception $e) {
http_response_code(404);
}
?>
Additional Resources
- Building a Support System Using Laravel PHP Framework and Froala HTML Editor Software – Part 1
- Building a Support System Using Laravel PHP Framework and Froala HTML Editor Software – Part 2
- Building a Support System Using Laravel PHP Framework and Froala HTML Editor Software – Part 3
- How To Use WYSIWYG Editor In PHP
Do you think we can improve this article? Let us know.