繁体   English   中英

图像上传到Summernote编辑器中的文件夹

[英]Images upload to folder in Summernote editor

我有asp.net mvc 4应用程序。 在那个应用程序中我有表单,在那个表单中我有summernote富文本编辑器。 但是在这个编辑器中,我可以选择将图像上传到这个编辑器。

但是,一旦我填写其余的字段并汇总这个表格。 它不是我通过summernote编辑器上传的图像。

我想上传图片到以下路径~/Content/Images/

并在数据库字段中将路径保持为~/Content/Images/Image_Name.JPG

因此,我尝试按照此解决方案此处报告的 GitHub 问题创建我的解决方案

来自Viewpage

<div class="form-group">
 @Html.TextAreaFor(m => m.Field_Value, new { @class = "form-control summernote"})
</div>

控制器方法

    [HttpPost]
    public byte[] UploadImage(HttpPostedFileBase file)
    {
        Stream fileStream = file.InputStream;
        var mStreamer = new MemoryStream();
        mStreamer.SetLength(fileStream.Length);
        fileStream.Read(mStreamer.GetBuffer(), 0, (int)fileStream.Length);
        mStreamer.Seek(0, SeekOrigin.Begin);
        byte[] fileBytes = mStreamer.GetBuffer();
        Stream stream = new MemoryStream(fileBytes);

        //string result = System.Text.Encoding.UTF8.GetString(fileBytes);
        var img = Bitmap.FromStream(stream);
        Directory.CreateDirectory("~//Content//Images//" + img);
        return fileBytes;

    }

这是脚本

<script type="text/javascript">
$('.summernote').summernote({
    height: 200,   // set editable area's height
    focus: true,   // set focus editable area after Initialize summernote
    onImageUpload: function (files, editor, welEditable) {
        var formData = new FormData();
        formData.append("file", files[0]);

        $.ajax({
            url: "@Url.Action("Home", "UploadImage")",
            data: formData,
            type: 'POST',
            cache: false,
            contentType: false,
            processData: false,
            success: function (imageUrl) {
                if (!imageUrl) {
                    debugger;
                    // handle error
                    return;
                }
                editor.insertImage($editable, imageUrl);
            },
            error: function () {
                // handle error
            }
        }); 
    }
});

这也曾经,它没有显示图像是否上传到编辑器

我更新了你的脚本,它适用于我(检查代码注释的更改):

<script type="text/javascript">
var editor =  // 1st change: will need this variable later
$('.summernote').summernote({
    height: 200,   
    focus: true,   
    callbacks: { // 2nd change - onImageUpload inside of "callbacks"
      onImageUpload: function (files) { // 3rd change - dont need other params
        var formData = new FormData();
        formData.append("file", files[0]);

        $.ajax({
            url: "@Url.Action("Home", "UploadImage")",
            data: formData,
            type: 'POST',
            cache: false,
            contentType: false,
            processData: false,
            success: function (imageUrl) {
                if (!imageUrl) {
                    // handle error
                    return;
                }
                // 4th change - create img element and add to document
                var imgNode = document.createElement('img');
                imgNode.src = imageUrl;
                editor.summernote('insertNode', imgNode);
            },
            error: function () {
                // handle error
            }
        });
      } 
    }
});
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM