1 Star2 Stars3 Stars4 Stars5 Stars (6 votes, average: 5.00 out of 5)

Store Image Uploads On Server With Summernote Not Base 64

Store Image Uploads On Server With Summernote Not Base 64

If you do image uploads through Summernote you will notice that it stores base 64 code for the image. If you are saving that kind of code in your database you will notice that it bloats the database. This will cause lag time on your server. The much better option is upload the image to the file system and store the actual image in a directory.

Setting Up To Store Image Uploads On Server With Summernote Not Base 64 *

Let us set up our server to store images though summernote on a directory. First we will create 2 files and one folder on our server.

Create The Index.php File *

Create an index.php file on your server. Here is the code. Be sure to include the html language tag as well as the doctype.

<html lang="en"><!DOCTYPE html>
<html>
<head>
<link href="http://netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.css" rel="stylesheet">
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script> 
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.js"></script> 

<!-- include summernote css/js -->
<link href="http://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.9/summernote.css" rel="stylesheet">
<script src="http://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.9/summernote.js"></script>
</head>
<body>
<div class="container">
<form>
<textarea id="summernote"></textarea>
</form>
</div>
<script>$(document).ready(function() {
$("#summernote").summernote({
  placeholder: 'enter directions here...',
        height: 300,
         callbacks: {
        onImageUpload : function(files, editor, welEditable) {

             for(var i = files.length - 1; i >= 0; i--) {
                     sendFile(files[i], this);
            }
        }
    }
    });
});
function sendFile(file, el) {
var form_data = new FormData();
form_data.append('file', file);
$.ajax({
    data: form_data,
    type: "POST",
    url: 'editor-upload.php',
    cache: false,
    contentType: false,
    processData: false,
    success: function(url) {
        $(el).summernote('editor.insertImage', url);
    }
});
}
</script>
</body>
</html>

Create editor-upload.php File *

Now Create editor-upload.php file. This is what will process the image file for you. Here is what it looks like.

<?php 
if(empty($_FILES['file']))
{
	exit();	
}
$errorImgFile = "./img/img_upload_error.jpg";
$temp = explode(".", $_FILES["file"]["name"]);
$newfilename = round(microtime(true)) . '.' . end($temp);
$destinationFilePath = './img-uploads/'.$newfilename ;
if(!move_uploaded_file($_FILES['file']['tmp_name'], $destinationFilePath)){
	echo $errorImgFile;
}
else{
	echo $destinationFilePath;
}

?>

Create img-uploads Directory *

Now create a folder and call it img-uploads. This is the folder we will be storing the images in. Make sure it has permissions to store files.

Just in case muy WordPress corrupts my code here you can download the files here.

Summernote Image Upload On The Fly

Please follow and like us:
Store Image Uploads On Server With Summernote Not Base 64 was last modified: April 26th, 2018 by Maximus Mccullough

Leave a Reply

Your email address will not be published. Required fields are marked *