Simditor的图片上传(原理 + django实现)
来源:互联网 发布:淘宝刷评论有什么影响 编辑:程序博客网 时间:2024/05/16 01:18
其实本文是一篇笔记....
首先推两篇深度好文,其实这两篇文章都讲了一部分,但是我感觉都不全面,这也是我想总结一下,写下这篇的原因,我也是看完这两篇文章之后实现,然后自己实现的。
http://blog.csdn.net/itmyhome1990/article/details/40374843
http://www.cnblogs.com/shawlang/p/4766681.html
当然也可以去看一下官方文档:
http://simditor.tower.im/docs/doc-config.html#anchor-pasteImage
本着尽量避免重复操作的原则,感觉自己的这篇文章成了上两篇博文的使用指南......
毕竟这么懒。
不管怎么说,我们先从原理讲起:
富文本编辑器中的图片不像单独上传文件有个提交动作来交到后台,而是跟随文章一起上传,
如果simditor的前端js配置选项upload里面的url(官方文档称upload api url)配置错误,上传的图片地址会直接是图片内容。。。这样存到数据库里很坑吧
所以,我们要让图片上传到服务器的文件夹,然后返回一个服务器上该图片的url, 但是上传操作不能中断编辑,那么只能用ajax上传,然后返回一个json,然后simditor会自动创建一个<img>对象,把src设置成返回json里面的file_path字段。
那么实现,我们先根据第一个博文的流程改掉simditor.js 然后给上传图片增加name属性。顺便小小吐槽一下那位博主….
改完这个就贴java后台代码了喂!
还没解释原理啊喂!
都不解释一下参数名字是什么啊喂!
……好吧,是我自己渣渣…看到下面的java代码没有说明就不想看了
然后就搜到了下一篇博主的文章,相比这个博主就友好一点,至少写了原理,另外觉得很方便的是,他也用的django。。。
我就接着按照第二个博主的步骤操作
上传的流程就是:
我在前端上传图片,
upload中的filekey属性就是文件名,
通过url属性中的url对应到在urls.py映射的upload_file函数(这点估计是博主的失误,因为下面的函数名定义是file_upload函数,其实是一个函数),
然后在file_upload函数里,
file变量通过filekey属性(该文章是’upload_file’)来获取到该图片,
然后后台通过之前定义的路径,日期时间等编辑好file_dir这个变量
(这里博主很友好的不让我们自己创建文件夹,而是调用os.makedirs,但是牺牲的效率就是每次上传都要检查一次有没有该文件夹路径),
然后加上文件名就是之后json要返回的file_path;
(这里还是要说一点,我们在上面设置file_path的时候是使用的是settings.MEDIA_ROOT, 结果我们在构造json的字段的时候这里变成了settings.MEDIA_URL,
因为
MEDIA_URL = '/uploads/'MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')BASE_DIR是在服务器端,整个网站的文件系统路径,我们在urls.py里是没有体现的,所以通过json传到前端,在服务端通过这个路径并不能访问到,所以如果构造json的时候使用MEDIA_ROOT会提示上传出错,而MEDIA_URL中的'/uploads/'是在路由中体现的,所以要用后者
)
然后我们在设置json的返回值,通过HttpResponse传到前端,这时候需要第五步里的配置,就可以了。
这里我想说一下,中午吃饭和同学讨论,对于小项目开发,优化的东西很少,要实现的功能很多,所以重点在与实现业务逻辑,然而我们在搜博文的时候,应该更倾向于去看一些讲原理的东西,而不是贴一段代码而不写一下分析就了事,当然有些教程需要一步一步跟着做,原理可能显得不那么重要,但是大多数,我们实现一个功能,后台的语言,框架,思想太多了,只贴代码显得有些不负责任,如果能够将思路讲清楚,那么会让读者收获更多。
- Simditor的图片上传(原理 + django实现)
- Simditor图片上传
- Simditor图片上传
- Simditor图片上传
- Simditor编辑器 SpringMVC上传图片
- Django实现图片的上传
- Simditor上传图片(ASP.NET+JS/Jquery)
- simditor 限制图片格式 和 上传图片过慢
- simditor编辑器,图片上传链接替换
- django下ckeditor上传图片的实现
- django中实现图片的上传功能
- react 中 使用 没有启用图片上传功能的simditor 富文本编辑器
- django中实现图片上传
- simditor 图片上传成功后修改图片地址
- django的文件 图片上传(简单方法)
- 在BAE搭建的Django中实现图片上传并用jquery预览图片
- 在BAE搭建的Django中实现图片上传并用jquery预览图片
- ASP程序实现图片上传的原理分析
- 这里犹如候车月台,总有人往有人来
- linux ls和 ll 命令
- kafka2.9.2的伪分布式集群安装和demo(java api)测试
- js表单收藏验证
- 小白参加EmotiW 2016
- Simditor的图片上传(原理 + django实现)
- ubuntu12.04+Elasticsearch2.3.3伪分布式配置,集群状态分片调整
- gdal-2.1.0+vs2010编译
- Linux下安装Nginx详细图解教程
- mysql 双机热备 实战
- BZOJ1597: [Usaco2008 Mar]土地购买
- 编译可在Nexus5上运行的CyanogenMod13.0 ROM(基于Android6.0)
- servlet api下载
- OGG 中 HANDLECOLLISIONS参数用法