CKEditor+SWFOploadは強力なエディタ(3)---バックグラウンド受信画像フローを実現


CKEditorとSWFOploadをフロントに配置しておけば基本的なニーズを満たすことができます
ここで、私が構成した非同期アップロード画像を受信するページは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.画像のmd 5値を画像の名前として使用すると、画像名が重複しないことを保証し、2つ目はユーザーが同じ写真をアップロードするときに上書きすることができる
最後に、機能的なUbbエディタが誕生しました~~
ただしエディタはソースモードに移行できるため
ユーザーは、ソースモードで<,>の記号を直接入力することもできます.
だからバックグラウンドでユーザーが入力したデータを受信するとき
 msg = msg.Replace("<", "&lt").Replace(">", "&gt");
<,>を置換する必要があります
最後の最後~
ユーザーに情報を表示するときは、ubbコードをhtmlに変換する必要があります.これにより、ブラウザが解析できます.
書く静的クラスを提供して、使う時ubbコードを送り込んで、htmlコードを返します
UbbHelper
中には多くの問題があり、自分のニーズに合わせてコードを変更する必要があります.
これで大成功だ!