add a webp threadhold to convert files

This commit is contained in:
Lee 2023-04-09 16:51:05 +01:00
parent c2c6a62ab4
commit 8b116a143f
2 changed files with 23 additions and 20 deletions

@ -1,32 +1,34 @@
# ShareX Upload Script # ShareX Upload Script
This is a PHP script that lets you easily upload screenshots taken with the ShareX app to your website. ShareX is a popular screenshot tool for Windows that allows you to take screenshots, annotate them, and share them online. This PHP script allows you to effortlessly upload your ShareX app screenshots to your website. ShareX is a widely-used Windows screenshot tool that enables users to take screenshots, annotate them, and share them online.
## Features ## Features
- Uploads screenshots to your website using ShareX. - Effortlessly upload screenshots to your website using ShareX.
- Can automatically convert screenshots to WebP format. - Automatically convert screenshots to WebP format.
## Installation ## Installation
1. Find somewhere to host the script (Preferably more than 5GB of storage). To install this script:
2. Check that your web server has the GD library installed. (See below for instructions on how to install it on Ubuntu.)
3. Upload the files to your server.
4. Edit the `upload.php` file to configure the script.
5. Add the custom uploader to ShareX.
6. Configure the custom uploader in ShareX.
7. Test it!
## Help - Find a suitable location to host the script (with at least 5GB of storage).
- Verify that your web server has the GD library installed. (See instructions below for Ubuntu installation.)
- Upload the files to your server.
- Edit the `upload.php` file to configure the script.
- Add the custom uploader to ShareX.
- Configure the custom uploader in ShareX.
- Test the script!
If you need help, you can contact me on Discord at `Fascinated#7668`. ## Need Help?
## How to install GD Library on Ubuntu If you require assistance, feel free to contact me via Discord at Fascinated#7668.
1. `sudo apt-get install php-gd` ## How to Install GD Library on Ubuntu
2. Add `extension=gd` to your php.ini file.
3. Restart your web server and php.
## Other - `sudo apt-get install php-gd`
- Add extension=gd to your php.ini file.
- Restart your web server and php.
This project is worked on at my Gitea instance: <https://git.fascinated.cc/Fascinated/sharex-php-uploader> ## Other Information
This project is maintained on my Gitea instance: <https://git.fascinated.cc/Fascinated/sharex-php-uploader>

@ -10,6 +10,7 @@ $tokens = array("set me"); // Your secret keys
$uploadDir = "./"; // The upload directory $uploadDir = "./"; // The upload directory
$useRandomFileNames = false; // Use random file names instead of the original file name $useRandomFileNames = false; // Use random file names instead of the original file name
$fileNameLength = 8; // The length of the random file name $fileNameLength = 8; // The length of the random file name
$webpThreadhold = 1048576; // The minimum file size for converting to webp (in bytes)
/** /**
* Check if the token is valid * Check if the token is valid
@ -59,7 +60,7 @@ try {
die(); die();
} }
$target_file = $_FILES["sharex"]["name"]; // File name $target_file = preg_replace("/[^A-Za-z0-9_.]/", '', $_FILES["sharex"]["name"]); // Remove unwanted characters
$fileType = pathinfo($target_file, PATHINFO_EXTENSION); // File extension (e.g. png, jpg, etc.) $fileType = pathinfo($target_file, PATHINFO_EXTENSION); // File extension (e.g. png, jpg, etc.)
// Check if the file already exists // Check if the file already exists
@ -76,7 +77,7 @@ try {
} }
// Convert the image to webp if applicable // Convert the image to webp if applicable
if (in_array($fileType, array("png", "jpeg", "jpg"))) { if (in_array($fileType, array("png", "jpeg", "jpg")) && $_FILES["sharex"]["size"] > $webpThreadhold) {
$image = imagecreatefromstring(file_get_contents($_FILES["sharex"]["tmp_name"])); $image = imagecreatefromstring(file_get_contents($_FILES["sharex"]["tmp_name"]));
$webp_file = pathinfo($finalName, PATHINFO_FILENAME) . ".webp"; $webp_file = pathinfo($finalName, PATHINFO_FILENAME) . ".webp";
imagewebp($image, $webp_file, 90); // Convert the image and save it imagewebp($image, $webp_file, 90); // Convert the image and save it