Summernote image upload

匿名 (未验证) 提交于 2019-12-03 02:08:02

问题:

I have problem with editor Summernote. I want to upload images into a catalog on server. I have some script:

    <script type="text/javascript"> $(function () {         $(\'.summernote\').summernote({                     height: 200                   });                      $(\'.summernote\').summernote({                        height:300,                        onImageUpload: function(files, editor, welEditable) {                         sendFile(files[0],editor,welEditable);                        }                       });              }); </script> <script type="text/javascript"> function sendFile(file, editor, welEditable) {     data = new FormData();     data.append("file", file);     url = "http://localhost/spichlerz/uploads";     $.ajax({         data: data,         type: "POST",         url: url,         cache: false,         contentType: false,         processData: false,         success: function (url) {             editor.insertImage(welEditable, url);         }     }); } </script>            <td><textarea class="summernote" rows="10" cols="100" name="tekst"></textarea></td> 

Of course I have all js and css files. What i do wrong? If I click on image upload and go to the editor, the image is not in textarea.

If I delete sendFile function and onImageUpload: the image save on base64.

Link to summernote: http://hackerwins.github.io/summernote/

回答1:

I tested this code and Works

Javascript

<script>     $(document).ready(function() {         $('#summernote').summernote({             height: 200,             onImageUpload: function(files, editor, welEditable) {                 sendFile(files[0], editor, welEditable);             }         });         function sendFile(file, editor, welEditable) {             data = new FormData();             data.append("file", file);             $.ajax({                 data: data,                 type: "POST",                 url: "Your URL POST (php)",                 cache: false,                 contentType: false,                 processData: false,                 success: function(url) {                     editor.insertImage(welEditable, url);                 }             });         }     });   </script> 

PHP

if ($_FILES['file']['name']) {             if (!$_FILES['file']['error']) {                 $name = md5(rand(100, 200));                 $ext = explode('.', $_FILES['file']['name']);                 $filename = $name . '.' . $ext[1];                 $destination = '/assets/images/' . $filename; //change this directory                 $location = $_FILES["file"]["tmp_name"];                 move_uploaded_file($location, $destination);                 echo 'http://test.yourdomain.al/images/' . $filename;//change this URL             }             else             {               echo  $message = 'Ooops!  Your upload triggered the following error:  '.$_FILES['file']['error'];             }         } 


回答2:

Image Upload for Summernote v0.8.1

for large images

$('#summernote').summernote({     height: ($(window).height() - 300),     callbacks: {         onImageUpload: function(image) {             uploadImage(image[0]);         }     } });  function uploadImage(image) {     var data = new FormData();     data.append("image", image);     $.ajax({         url: 'Your url to deal with your image',         cache: false,         contentType: false,         processData: false,         data: data,         type: "post",         success: function(url) {             var image = $('<img>').attr('src', 'http://' + url);             $('#summernote').summernote("insertNode", image[0]);         },         error: function(data) {             console.log(data);         }     }); } 


回答3:

UPLOAD IMAGES WITH PROGRESS BAR

Thought I'd extend upon user3451783's answer and provide one with an HTML5 progress bar. I found that it was very annoying uploading photos without knowing if anything was happening at all.

HTML

<progress></progress>  <div id="summernote"></div> 

JS

// initialise editor  $('#summernote').summernote({         onImageUpload: function(files, editor, welEditable) {             sendFile(files[0], editor, welEditable);         } });  // send the file  function sendFile(file, editor, welEditable) {         data = new FormData();         data.append("file", file);         $.ajax({             data: data,             type: 'POST',             xhr: function() {                 var myXhr = $.ajaxSettings.xhr();                 if (myXhr.upload) myXhr.upload.addEventListener('progress',progressHandlingFunction, false);                 return myXhr;             },             url: root + '/assets/scripts/php/app/uploadEditorImages.php',             cache: false,             contentType: false,             processData: false,             success: function(url) {                 editor.insertImage(welEditable, url);             }         }); }  // update progress bar  function progressHandlingFunction(e){     if(e.lengthComputable){         $('progress').attr({value:e.loaded, max:e.total});         // reset progress on complete         if (e.loaded == e.total) {             $('progress').attr('value','0.0');         }     } } 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!