CKEditor+SWFUpload实现功能较为强大的编辑器(三)---后台接收图片流程
在前台配置完CKEditor和SWFUpload之后就可以满足基本的需求了
在这里,我配置的接收异步上传的图片的页面为upload.ashx
在这个ashx中对上传的图片处理的流程如下:
context.Response.ContentType = "text/plain";
HttpPostedFile file = context.Request.Files["Filedata"];//接收到上传的图片
string fileName = string.Empty;
string fileExtension = string.Empty;
if (file != null)
{
fileName = Path.GetFileName(file.FileName);//获取图片名
fileExtension = Path.GetExtension(file.FileName);//获取扩展名
}
if (fileExtension == ".jpg")
{
string saveDir = "/upload/" + DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day + "/";//根据当前年月日在upload文件夹中创建该图片的保存路径,便于管理
Directory.CreateDirectory(Path.GetDirectoryName(context.Server.MapPath(saveDir)));//创建路径
string fullDir = saveDir + GetMD5.GetFileMD5(file.InputStream) + fileExtension;//使用图片的md5作为该图片保存的名字
file.SaveAs(context.Server.MapPath(fullDir));
context.Response.Write("ok;" + fullDir);//保存完毕之后将图片的路径返回
}
需要注意的几点是:
1.在服务器端保存文件一定要用绝对路径,如context.Server.MapPath(fullDir)
2.使用图片的md5值作为图片的名字,一来保证图片名不会重复,二来在用户上传同一张照片的时候可以将其覆盖
最后,功能比较完善的Ubb编辑器诞生了~~
不过由于编辑器可以转成源码模式
用户还是可以直接在源码模式下输入<,>这些符号
所以在后台接收用户输入的数据的时候
msg = msg.Replace("<", "<").Replace(">", ">");
需要对<,>进行替换
最后的最后~
在向用户展示信息的时候,需要把ubb代码转换成html,这样浏览器才能解析
提供一个写好的静态类,要用的时候将ubb代码传进去,返回的就是html代码
里面有挺多的问题,需要根据自己的需求更改代码
至此,大功告成!
CKEditor+SWFUpload实现功能较为强大的编辑器(三)---后台接收图片流程的更多相关文章
- CKEditor+SWFUpload实现功能较为强大的编辑器(二)---SWFUpload配置
在前面配置完CKEditor之后,就可以拥有一个功能挺强大的编辑器了 但是现在还不够,还要能够在发表文字中插入自己电脑上的图片 CKEditor自己好像有这个功能,但是实在是...没法说,很难用(这是 ...
- CKEditor+SWFUpload实现功能较为强大的编辑器(一)---CKEditor配置
CKEditor爆表的强大功能大家都有目共睹,号称最强大的在线编辑器,只要将文件复制到项目中,在添加引用,在一句代码就可以将普通的textarea变成华丽的编辑器 所谓一复制,一拖,一换就大功告成 但 ...
- drupal中安装CKEditor文本编辑器,并配置图片上传功能
一.下载: 1.CKEditor模块 2.IMCE模块 二.安装 1.复制: 下载完上面两个模块之后,解压,将解压后整个文件夹,复制粘贴,放到 sites\all\modules下面,个人 ...
- 富文本文件CKEDITOR增加上传图片功能(.net)
如题,本身的CKEDITOR控件并没有开启上传图片的功能, 打开图像按钮,只有图像信息和高级两个table选项卡,版本不同,显示略有差异,我的实现是有两种方法都可以添加上传功能, 第一种方法使用CKE ...
- python模块之httplib(在py3中功能进一步强大,请详看文档)
# -*- coding: utf-8 -*-#python 27#xiaodeng#python模块之httplib(在py3中功能进一步强大,请详看文档) import httplib#是较为底层 ...
- 推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler定时器
在C#WINFORM或者是ASP.NET的WEB应用程序中,根据各种定时任务的需求,比如:每天的数据统计,每小时刷新系统缓存等等,这个时候我们得应用到定时器这个东东. .NET Framework有自 ...
- 功能更强大的格式化工具类 FormatUtils.java
package com.util; import java.text.DecimalFormat; import java.text.ParseException; import java.text. ...
- drupal7中CKEditor开启上传图片功能
在drupal建站中,所见即所得编辑器提供了友好的界面.也提高开发效率,而CKEditor是一款非常不错的编辑器.定制性相当高,在这推荐给大家. CKEditor和其它模块(IMCE)搭配下在文字排版 ...
- 让Docker功能更强大的10个开源工具
让Docker功能更强大的10个开源工具 更好的管理.Web前端程序.更深入地了解容器应用程序,Docker生态系统正在迅速发展,这还得归功于其充满活力的开源社区. 软件项目的成功常常根据其催生的生态 ...
随机推荐
- Chromium源码获取与编译
http://blog.csdn.net/glunoy/article/details/23591047 http://blog.sina.com.cn/s/blog_48f93b530101ergp ...
- 封装的方法--读取任何路径下的properties文件中的值
概述:我们在做项目时,经常需要从某个properties文件中读取properties文件中的值.现在我封装了一下方法,直接读取配置文件中的值. 代码如下所示: /** * Created by qi ...
- spring in action 学习十一:property placeholder Xml方式实现避免注入外部属性硬代码化
这里用到了placeholder特有的一个语言或者将表达形式:${},spring in action 描述如下: In spring wiring ,placeholder values are p ...
- Lesson9 some interesting things in C#
1.关键帧动画 1)xml 界面 <Page x:Class="Test.MainPage" xmlns="http://schemas.microsoft.com ...
- 蓝萝卜blu netty3升netty4
老项目是netty3的,本来想直接改到netty5,但是netty5居然是只支持jdk1.7,很奇怪jdk1.6和jdk1.8都不行..为了兼容jdk1.6加上netty4本来和netty5就差别不大 ...
- switch case语句的用法
Java语言 switch支持部分基本数据类型(primitive data types),如:byte.short.int.long.char:不支持boolean.float.double. 如图 ...
- 在iOS上实现一个简单的日历控件
http://blog.csdn.net/jasonblog/article/details/21977481 近期需要写一个交互有点DT的日历控件,具体交互细节这里略过不表. 不过再怎么复杂的控件, ...
- Linux的系统级性能剖析工具-perf
一直在找个靠谱且易用的性能分析工具,perf 貌似是很符合要求的,先给出阿里整理的几篇文档: Linux的系统级性能剖析工具-perf-1.pdf Linux的系统级性能剖析工具-perf-2.pdf ...
- android与java的关系
摘自:http://bbs.51cto.com/thread-944897-1.html 相信学习android的人都会想过或者想知道这个问题,那就请你耐心的看完这篇文章吧,你会对android与 ...
- svn 基本使用
通过脚本删除物理文件已经不存在的文件 svn st | sed -n '/!/p' | awk '{print $2}' | xargs svn delete 或 svn st | awk '{if ...