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("<", "&lt").Replace(">", "&gt");

需要对<,>进行替换

最后的最后~

在向用户展示信息的时候,需要把ubb代码转换成html,这样浏览器才能解析

提供一个写好的静态类,要用的时候将ubb代码传进去,返回的就是html代码

UbbHelper

里面有挺多的问题,需要根据自己的需求更改代码


至此,大功告成!

posted @ 2014-07-07 16:40  蒋源德  阅读(260)  评论(0编辑  收藏  举报