1
I wonder if anyone has any idea how to proceed to compress image while uploading, as the image is getting too large.
The routine I’m currently using is the one below:
public function providerUpdateDocuments() {
    $inputs = Input::all();
    $walker_id = Session::get('walker_id');
    foreach ($inputs as $key => $input) {
        $walker_document = WalkerDocument::where('walker_id', $walker_id)->where('document_id', $key)->first();
        if (!$walker_document) {
            $walker_document = new WalkerDocument;
        }
        $walker_document->walker_id = $walker_id;
        $walker_document->document_id = $key;
        if ($input) {
            $file_name = time();
            $file_name .= rand();
            $file_name = sha1($file_name);
            $ext = $input->getClientOriginalExtension();
            $input->move(public_path() . "/uploads", $file_name . "." . $ext);
            $local_url = $file_name . "." . $ext;
            // Upload to S3
            if (Config::get('app.s3_bucket') != "") {
                $s3 = App::make('aws')->get('s3');
                $pic = $s3->putObject(array(
                    'Bucket' => Config::get('app.s3_bucket'),
                    'Key' => $file_name,
                    'SourceFile' => public_path() . "/uploads/" . $local_url,
                ));
                $s3->putObjectAcl(array(
                    'Bucket' => Config::get('app.s3_bucket'),
                    'Key' => $file_name,
                    'ACL' => 'public-read'
                ));
                $s3_url = $s3->getObjectUrl(Config::get('app.s3_bucket'), $file_name);
            } else {
                $s3_url = asset_url() . '/uploads/' . $local_url;
            }
            $get = Walker::where('id', '=', $walker_id)->first();
            $pattern = "Olá, " . $get->first_name . ", ID " . $walker_id . " Documento enviado, aguarde a aprovação.";
            $subject = "Waiting for an Approval";
            /* email_notification('', 'admin', $pattern, $subject); */
            if (isset($walker_document->url)) {
                if ($walker_document->url != "") {
                    $icon = $walker_document->url;
                    unlink_image($icon);
                }
            }
            $walker_document->url = $s3_url;
            $walker_document->save();
            /* if ($walker_document->save()) {
              echo 'asdasd';
              } */
        }
    }
    $message = "Seus documentos foram atualizados com sucesso.";
    $type = "success";
    return Redirect::to('/provider/documents')->with('message', $message)->with('type', $type);
}
Does anyone have any idea what can be done to reduce the size of this image before uploading or even after uploading.
Thanks.
Hug.
You can convert to
webp; Use the Imagemagick and reduce some quality; or you can use software such asjpegoptim,optipngandpngquant.– Valdeir Psr