tinymce上传图片php,tinymce上传本地图片的实现:imageUpload + jquery.form.js

使用tinymce作为网站的编辑器的时候,由于tinymce本身并不提供本地图片上传(提供付费图片上传插件),所以我们需要自己去集成这个功能。但是我在网上找了很多资料,都没有完整且有效的实现方法,经过对已有插件的研究,最终实现了这个功能。现在记录下来,为今后参考。

1. 使用imageUpload插件

tinymce拥有完备的插件体系,就像WordPress一样,tinymce本身就提供了一些核心插件,例如字体样式等,虽然都是编辑器的核心功能,但是仍然是通过插件实现的。它不提供图片上传功能,它的图片只能引用网络图片。所以我们可以通过插件的形式来实现这个功能。

imageUpload插件可以在这里获取和了解。按照作者的意图,在使用本插件的时候,必须先加载iframe form post插件,这个插件在这里下载。

但是iframe form post插件的机制似乎出现了问题,导致我在使用时无法正常使用imageUpload插件,所以我选择了使用jquery.form.js这个插件。

2.使用jquery.form.js插件

jquery非常漂亮的封装了ajax,但是在进行表单提交的时候,特别是在上传图片的时候,就会出现问题,[type=file]无法被提交。而通过jquery.form.js插件,就可以很好的解决这个问题。

jquery.form.js并没有提交为官方插件,你可以在这里下载下来。点击这里进入插件的官方主页。

3.开始部署tinymce

说了这么多,到底怎么来实现tinymce的本地上传图片功能呢?按照下方的方法一步一步的操作即可。

1)集成tinymce

也就是在你的HTML中先集成tinymce,并可以正常使用。具体集成方法就不说了。

2)载入jQuery.form.js

在进行tinymce的某个实例化之前,要载入jquery.form.js,你可以直接在tinymce的js载入之后,立即载入jquery.form.js。

3)把插件丢入tinymce的插件目录

上面说过了,我们对imageUpload插件进行了改造,点击这里下载我改造过的插件(jquery.form.js也在这里面)。下载之后,解压出imageupload目录,把这个目录直接丢在tinymce的插件目录(tinymce/plugins)下。

4)初始化时配好配置

在第一步中我们正常集成了tinymce,说明你已经知道如何进行配置了。接下来你要让你的上传图标出现在编辑器工具栏中,并且能够上传图片成功。

tinymce.init({

selector: "#detail",

language : "zh_CN",

language_url : "__ASSETS__/TinymceEditor/langs/zh_CN.js", // 语言包,需要到官网去下载,你也可以不使用中文语言包

menubar: false,

convert_urls: false,

height: 450,

plugins: [

"link imageupload"

],

toolbar: "undo redo | imageupload link | bold italic | alignleft aligncenter alignright alignjustify",

imageupload_url: '{:U("File/uploadPicture")}'

});

要注意上面三个地方,一个是plugins中添加imageupload(初始化时载入插件),toolbar中要添加imageupload(工具栏中出现上传图片按钮),imageupload_url要设置文件上传到哪一个URL(用php去接收$_FILES['file']进行处理,比如上传、水印等)。

imageupload_url用来处理上传好的图片,同时要返回一个json,让插件知道上传是否成功。json格式在imageUpload的github上已经有了,如果成功的情况下,要返回:

{"error":false,"path":"http:\/\/www.mydomain.com\/myimage.jpg"}

这样子,上传成功后,就可以直接将图片插入到该位置了。

2015-11-19

17244

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中,要实现图片上传到工程文件夹,可以使用以下步骤: 首先,你需要在Java项目中引入相应的依赖,以便能够使用文件上传的功能。通常可以使用Apache Commons FileUpload库来实现。 接下来,你需要创建一个用于接收上传文件的Servlet。在这个Servlet中,你需要实现doPost方法来处理POST请求,并从请求中获取文件数据。 在doPost方法中,你可以使用FileUpload库提供的API,来将文件上传到指定的文件夹。你需要使用DiskFileItemFactory类来创建一个FileItemFactory对象,并将其作为参数传递给ServletFileUpload类的构造函数。然后,使用ServletFileUpload类的parseRequest方法解析请求,并获取文件项的列表。 对于每个文件项,你可以使用FileItem类的API来获取文件名、文件类型和文件内容。可以通过调用write方法将文件内容写入到指定的文件夹中。 最后,你需要在tinymce编辑器的设置中,指定图片上传的URL为刚才创建的Servlet的URL路径。当用户在编辑器中上传图片时,tinymce会将图片的数据发送到指定的URL上,并触发Servlet中的doPost方法。 这样,图片就会被上传到工程文件夹中了。你可以在需要显示图片的地方,通过指定路径来引用这些图片。 需要注意的是,为了确保上传的文件不会重复命名或覆盖已有文件,你可以使用UUID等唯一标识符来给每个文件生成一个独特的文件名。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值