当前位置:编程学习 > C#/ASP.NET >>

asp.net FCKeditor上传图片加入水印代码

如何在自己的网站中架设fckeditor编辑器我就不说了,本文默认你已经架设过并且熟悉fckeditor内部结构。
在下载fckeditor编辑器的同时,如果是使用.net版本,还必须下载一个源代码包,在里面有一些功能类,和编译出来的dll文件,存放在bin文件中,我们所需要做的就是修改源代码,获得新的dll,在自己的网站中替换就可以了。
(源代码版本号是fckeditor.net_2.5,编辑器文件版本号为fckeditor_2.6.2)
实用vs2005打开代码包根目录下的fredck.fckeditorv2.vs2005.csproj文件,待文件树展开后,找到filebrowser文件夹下的fileworkerbase.cs文件,对其进行修改。
我们需要的是修改fileworkerbase类中的fileupload方法函数。
在看代码之前先简单的介绍一下我的想法。我在自己的网站中建立了general.config文件,用于存放网站的一些配置信息,如水印的类型(文字型,图片型),是否需要加水印,文字型水印的文字内容等等和本文无关的重要配置信息。所以在如下带代码中,有一段是用来读取这些配置信息的。
在fileupload方法中找到ofile.saveas( sfilepath );语句

try
{
     dataset configds = new dataset();
     configds.readxml(server.mappath("~/config/general.config"));
     datatable configdt = configds.tables[0];
     if (configdt.rows[0]["watermarkstatus"].tostring() == "1")
     {
         image img = image.fromfile(sfilepath);
         if (configdt.rows[0]["watermarktype"].tostring() == "0")
         {
             graphics g = graphics.fromimage(img);
             g.drawimage(img, 0, 0, img.width, img.height);
             font f = new font("华文行楷", 40);
             brush b = new solidbrush(color.white);
             string addtext = configdt.rows[0]["watermarktext"].tostring();
             g.drawstring(addtext, f, b, img.width - 174, img.height - 40);
             g.dispose();
         }
         if (configdt.rows[0]["watermarktype"].tostring() == "1")
         {
             system.drawing.image copyimage = system.drawing.image.fromfile(server.mappath("~/watermark/watermark.gif"));
             graphics g = graphics.fromimage(img);
             g.drawimage(copyimage, new rectangle(img.width - copyimage.width, img.height - copyimage.height, copyimage.width, copyimage.height), 0, 0, copyimage.width, copyimage.height, graphicsunit.pixel);
             g.dispose();
         }
         sfilename = system.io.path.getfilenamewithoutextension(ofile.filename);
           string newpath = sfilename+"_"+datetime.now.tostring("yymmddhhmmss") + "." + 易做图tension;
           newpath = system.io.path.combine(sserverdir, newpath);
           sfilename = newpath;
           img.save(newpath);
           img.dispose();
          if (file.exists(sfilepath))
          {
               file.delete(sfilepath);
          }
       }
     }
catch
{
      this.sendfileuploadresponse(808, isquickupload);
}

补充:asp.net教程,.Net开发
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,