首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于TinyMCE的图像上传Handler Servlet/JSP

用于TinyMCE的图像上传Handler Servlet/JSP
EN

Stack Overflow用户
提问于 2015-12-18 14:16:03
回答 1查看 2K关注 0票数 1

我最近了解了TinyMCE,并将它的4.3版本应用到我的项目中,以帮助保存描述。

为了同样的目的,它还要求上传并显示在编辑器中的图像。

在搜索之后,我发现创建一个PHP或ASP.NET项目会很容易,该项目有很多关于TinyMCE的帮助和插件,但是对于J2EE或Servlet/JSP则没有或更少。

目前,我的代码站在这里:

TinyMCE脚本:

代码语言:javascript
运行
复制
tinymce.init({
            selector: '#description',
            plugins: "image link imagetools codesample emoticons paste autoresize textcolor table preview",
            menubar:false,
            statusbar: false,
            toolbar1: 'insertfile undo redo | styleselect | table | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image',
            toolbar2: 'preview | forecolor backcolor | codesample emoticons',
            automatic_uploads: true,
            paste_data_images: true,
            images_upload_base_path: '/uploaded/images',
            file_picker_handler: function (blobInfo, success, failure) {
                                var xhr, formData;

                                xhr = new XMLHttpRequest();
                                xhr.withCredentials = false;
                                xhr.open('POST', '/uploadFile');

                                xhr.onload = function() {
                                  var json;

                                  if (xhr.status != 200) {
                                    failure('HTTP Error: ' + xhr.status);
                                    return;
                                  }

                                  json = JSON.parse(xhr.responseText);

                                  if (!json || typeof json.location != 'string') {
                                    failure('Invalid JSON: ' + xhr.responseText);
                                    return;
                                  }

                                  success(json.location);
                                };

                                formData = new FormData();
                                formData.append('file', blobInfo.blob(), fileName(blobInfo));

                                xhr.send(formData);
                              }
        });

Servlet:创建并测试FileUploader servlet,路径定义为/uploadFile

servlet工作正常,并返回JSON对象{ location : '/uploaded/images/filename.jpg' }

但这里的两个密码是不互相交流的。

问题是,TinyMCE没有内置的文件资源管理器,可以在将其单独上传到文本区域之前将其上传到文本区域,而是将图像的URL直接传递到<image>标记中,而不上传实际文件。

有人能帮我抓取TinyMCE异步图像上传功能吗?我试着浏览了像这样的链接,但是它似乎不起作用。

另外,我也不知道它是如何被标记为How to upload files to server using JSP/Servlet?的--这是一个非常容易的部分,主要问题是How to call *FileUpload* servlet to upload images with TinyMCE in a Java Web App?

如果需要更多的解释,请告诉我。

阿西夫

EN

回答 1

Stack Overflow用户

发布于 2015-12-18 15:13:02

TinyMCE网站有一个PHP示例(如您所述)。基本过程是TinyMCE将为每个映像创建一个单独的HTTP。它将把HTTP发送到您在images_upload_url中提供的URL。

图像处理程序必须做任何需要做的事情,以便在应用程序中“存储”图像。这可能意味着:

  • 将该项存储在web服务器上的文件夹中。
  • 将项目存储在数据库中
  • 将项目存储在资产管理系统中。

选择存储图像的...regardless,您的图像处理程序需要返回一行JSON,告诉TinyMCE图像的新位置。正如TinyMCE文档中所引用的,如下所示:

{ location : '/uploaded/image/path/image.png' }

然后,TinyMCE将将图像的src属性更新为您返回的值。如果您在init中使用images_upload_base_path设置,则该设置将被添加到返回的位置。TinyMCE页面提供了有关所有这些的更多详细信息:

https://www.tinymce.com/docs/advanced/handle-async-image-uploads/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34357627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档