asp.net上传视频转换为flv格式,并截图(最好有例子)

fyl_zyd 2010-05-10 02:02:38
--webConfig配置
UpFiles文件夹是要保存你上传的文件,PlayFiles文件夹是用于你转换后保存的文件(用于网上播放)
ImgFile文件夹是保存截取视频文件的图片,然后那两个mencoder和ffmpeg文件夹是视频转换工具.此视频转换也
可叫做mencoder+ffmpeg视频转换.
首先,在配置文件中给这些文件夹进行路径的配置.如下
<appSettings>
<!--工具文件夹-->
<add key="ffmpeg" value="ffmpeg/ffmpeg.exe"/>
<add key="mencoder" value="mencoder/mencoder.exe"/>
<add key="mplayer" value="mencoder/mplayer.exe"/>
<!--上传文件的路径-->
<add key="upfile" value="UpFiles"/>
<!--上专文件图片路径-->
<add key="imgfile" value="ImgFile"/>
<!--上传文件图片大小-->
<add key="CatchFlvImgSize" value="240x180"/>
<add key="widthSize" value="400"/>
<add key="heightSize" value="350"/>
<!--转换后文件路径-->
<add key="playfile" value="PlayFiles"/>
</appSettings>




using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Default2 : System.Web.UI.Page
{
// 扩展名定义
string[] strArrFfmpeg = new string[] { "asf", "avi", "mpg", "3gp", "mov" };
string[] strArrMencoder = new string[] { "wmv", "rm", "rmvb" };
protected void Page_Load(object sender, EventArgs e)
{
}
//
protected void btnUpload_Click(object sender, EventArgs e)
{
string upFileName = "";
if (this.FileUpload1.HasFile)
{

string fileName = PublicMethod.GetFileName(this.FileUpload1.FileName);// GetFileName();
if ((string)Session["file"] == fileName)
{
return;
}
upFileName = Server.MapPath(PublicMethod.upFile + fileName);
this.FileUpload1.SaveAs(upFileName);
string saveName = DateTime.Now.ToString("yyyyMMddHHmmssffff");
string playFile = Server.MapPath(PublicMethod.playFile + saveName);
string imgFile = Server.MapPath(PublicMethod.imgFile + saveName);
//System.IO.File.Copy(Server.MapPath(PublicMethod.playFile + "00000002.jpg"), Server.MapPath(PublicMethod.imgFile+"aa.jpg"));
PublicMethod pm = new PublicMethod();
string m_strExtension = PublicMethod.GetExtension(this.FileUpload1.PostedFile.FileName).ToLower();

string Extension = CheckExtension(m_strExtension);

if (m_strExtension == "flv")
{//直接拷贝到播放文件夹下
System.IO.File.Copy(upFileName, playFile + ".flv");
pm.CatchImg(upFileName, imgFile);
}

if (Extension == "ffmpeg")
{
pm.ChangeFilePhy(upFileName, playFile, imgFile);
}
else if (Extension == "mencoder")
{
pm.MChangeFilePhy(upFileName, playFile, imgFile);
}


#region 插入数据到数据库中
//插入数据库代码

#endregion
Session["file"] = fileName;
}
}
//
private string CheckExtension(string extension)
{
string m_strReturn = "";
foreach (string var in this.strArrFfmpeg)
{
if (var == extension)
{
m_strReturn = "ffmpeg"; break;
}
}
if (m_strReturn == "")
{
foreach (string var in strArrMencoder)
{
if (var == extension)
{
m_strReturn = "mencoder"; break;
}
}
}
return m_strReturn;
}











...全文
1259 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaodacheng 2010-11-29
  • 打赏
  • 举报
回复
肯定呀,上传flv的视频根本就没有调用方法,他是直接复制过去的
cxmitjy 2010-08-11
  • 打赏
  • 举报
回复
这样转换的时候会报错的
zyd_fyl 2010-05-11
  • 打赏
  • 举报
回复
看下是不是视频问题,换个视频试下。
fyl_zyd 2010-05-11
  • 打赏
  • 举报
回复
成功了,flv的就可以,是视频的问题!
那我要是上传其他类型的视频也还是不成功啊!
fyl_zyd 2010-05-11
  • 打赏
  • 举报
回复
你代码可不可以写完整点!
谢了……
wuyq11 2010-05-10
  • 打赏
  • 举报
回复
ffmpeg转换
Process p = new Process();
p.StartInfo.FileName = "ffmpeg.exe";
p.StartInfo.Arguments = " -i " + "";
p.Start();
还有mencoder d:\A.avi -o d:\A.flv
http://topic.csdn.net/u/20070602/16/0F7C9F15-9977-40D2-928D-CEDCA6009E1E.html
fyl_zyd 2010-05-10
  • 打赏
  • 举报
回复
所有的都是
aihui109 2010-05-10
  • 打赏
  • 举报
回复
其中转换这部分是网上找的?还是所有的?

fyl_zyd 2010-05-10
  • 打赏
  • 举报
回复
这是我从网上找的一段代码,改了一下!
还是不行,也不是蛮懂!
aihui109 2010-05-10
  • 打赏
  • 举报
回复
还可以这样转换?。。。没在web里搞过,先mark
C5662601 2010-05-10
  • 打赏
  • 举报
回复
挺复杂呀 帮顶
fyl_zyd 2010-05-10
  • 打赏
  • 举报
回复
using System;
using System.Configuration;
/// <summary>
/// Summary description for PublicMethod
/// </summary>
public class PublicMethod :System.Web.UI.Page
{
public PublicMethod()
{
}
//文件路径
public static string ffmpegtool = ConfigurationManager.AppSettings["ffmpeg"];
public static string mencodertool = ConfigurationManager.AppSettings["mencoder"];
public static string mplayertool = ConfigurationManager.AppSettings["mplayer"];
public static string upFile = ConfigurationManager.AppSettings["upfile"] + "/";
public static string imgFile = ConfigurationManager.AppSettings["imgfile"] + "/";
public static string playFile = ConfigurationManager.AppSettings["playfile"] + "/";
//文件图片大小
public static string sizeOfImg = ConfigurationManager.AppSettings["CatchFlvImgSize"];
//文件大小
public static string widthOfFile = ConfigurationManager.AppSettings["widthSize"];
public static string heightOfFile = ConfigurationManager.AppSettings["heightSize"];
// // //获取文件的名字
public static string GetFileName(string fileName)
{
int i = fileName.LastIndexOf("\\") + 1;
string Name = fileName.Substring(i);
return Name;
}
//获取文件扩展名
public static string GetExtension(string fileName)
{
int i = fileName.LastIndexOf(".") + 1;
string Name = fileName.Substring(i);
return Name;
}
//
#region //运行FFMpeg的视频解码,(这里是绝对路径)
/// <summary>
/// 转换文件并保存在指定文件夹下面(这里是绝对路径)
/// </summary>
/// <param name="fileName">上传视频文件的路径(原文件)</param>
/// <param name="playFile">转换后的文件的路径(网络播放文件)</param>
/// <param name="imgFile">从视频文件中抓取的图片路径</param>
/// <returns>成功:返回图片虚拟地址; 失败:返回空字符串</returns>
public string ChangeFilePhy(string fileName, string playFile, string imgFile)
{
//取得ffmpeg.exe的路径,路径配置在Web.Config中,如:<add key="ffmpeg" value="E:\51aspx\ffmpeg.exe" />
string ffmpeg = Server.MapPath(PublicMethod.ffmpegtool);
if ((!System.IO.File.Exists(ffmpeg)) || (!System.IO.File.Exists(fileName)))
{
return "";
}
//获得图片和(.flv)文件相对路径/最后存储到数据库的路径,如:/Web/User1/00001.jpg
string flv_file = System.IO.Path.ChangeExtension(playFile, ".flv");

//截图的尺寸大小,配置在Web.Config中,如:<add key="CatchFlvImgSize" value="240x180" />
string FlvImgSize = PublicMethod.sizeOfImg;
System.Diagnostics.ProcessStartInfo FilestartInfo = new System.Diagnostics.ProcessStartInfo(ffmpeg);
FilestartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
FilestartInfo.Arguments = " -i " + fileName + " -ab 56 -ar 22050 -b 500 -r 15 -s " + widthOfFile + "x" + heightOfFile + " " + flv_file;
//ImgstartInfo.Arguments = " -i " + fileName + " -y -f image2 -t 0.05 -s " + FlvImgSize + " " + flv_img;
try
{
//转换
System.Diagnostics.Process.Start(FilestartInfo);
//截图
CatchImg(fileName, imgFile);
//System.Diagnostics.Process.Start(ImgstartInfo);
}
catch
{
return "";
}
//
return "";
}
//
public string CatchImg(string fileName, string imgFile)
{
//
string ffmpeg = Server.MapPath(PublicMethod.ffmpegtool);
//
string flv_img = imgFile + ".jpg";
//
string FlvImgSize = PublicMethod.sizeOfImg;
//
System.Diagnostics.ProcessStartInfo ImgstartInfo = new System.Diagnostics.ProcessStartInfo(ffmpeg);
ImgstartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
//
ImgstartInfo.Arguments = " -i " + fileName + " -y -f image2 -ss 2 -vframes 1 -s " + FlvImgSize + " " + flv_img;
try
{
System.Diagnostics.Process.Start(ImgstartInfo);
}
catch
{
return "";
}
//
if (System.IO.File.Exists(flv_img))
{
return flv_img;
}
return "";
}
#endregion
//
#region //运行FFMpeg的视频解码,(这里是(虚拟)相对路径)
public string ChangeFileVir(string fileName, string playFile, string imgFile)
{
//取得ffmpeg.exe的路径,路径配置在Web.Config中,如:<add key="ffmpeg" value="E:\51aspx\ffmpeg.exe" />
string ffmpeg = Server.MapPath(PublicMethod.ffmpegtool);
if ((!System.IO.File.Exists(ffmpeg)) || (!System.IO.File.Exists(fileName)))
{
return "";
}
//获得图片和(.flv)文件相对路径/最后存储到数据库的路径,如:/Web/User1/00001.jpg
string flv_img = System.IO.Path.ChangeExtension(Server.MapPath(imgFile), ".jpg");
string flv_file = System.IO.Path.ChangeExtension(Server.MapPath(playFile), ".flv");

//截图的尺寸大小,配置在Web.Config中,如:<add key="CatchFlvImgSize" value="240x180" />
string FlvImgSize = PublicMethod.sizeOfImg;
System.Diagnostics.ProcessStartInfo FilestartInfo = new System.Diagnostics.ProcessStartInfo(ffmpeg);
System.Diagnostics.ProcessStartInfo ImgstartInfo = new System.Diagnostics.ProcessStartInfo(ffmpeg);
FilestartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
ImgstartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
//此处组合成ffmpeg.exe文件需要的参数即可,此处命令在ffmpeg 0.4.9调试通过
//ffmpeg -i F:\01.wmv -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 f:\test.flv
FilestartInfo.Arguments = " -i " + fileName + " -ab 56 -ar 22050 -b 500 -r 15 -s " + widthOfFile + "x" + heightOfFile + " " + flv_file;
ImgstartInfo.Arguments = " -i " + fileName + " -y -f image2 -t 0.001 -s " + FlvImgSize + " " + flv_img;
try
{
System.Diagnostics.Process.Start(FilestartInfo);
System.Diagnostics.Process.Start(ImgstartInfo);
}
catch
{
return "";
}

///此处略去延时代码.如有那位知道如何捕捉ffmpeg.exe截图失败消息,请告知,先谢过!
if (System.IO.File.Exists(flv_img))
{
return flv_img;
}
return "";
}
#endregion
#region //运行mencoder的视频解码器转换(这里是(绝对路径))
public string MChangeFilePhy(string vFileName, string playFile, string imgFile)
{
string tool = Server.MapPath(PublicMethod.mencodertool);
//string mplaytool = Server.MapPath(PublicMethod.ffmpegtool);
if ((!System.IO.File.Exists(tool)) || (!System.IO.File.Exists(vFileName)))
{
return "";
}
string flv_file = System.IO.Path.ChangeExtension(playFile, ".flv");

//截图的尺寸大小,配置在Web.Config中,如:<add key="CatchFlvImgSize" value="240x180" />
string FlvImgSize = PublicMethod.sizeOfImg;
System.Diagnostics.ProcessStartInfo FilestartInfo = new System.Diagnostics.ProcessStartInfo(tool);
FilestartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
FilestartInfo.Arguments = " " + vFileName + " -o " + flv_file + " -of lavf -lavfopts"
+ "i_certify_that_my_video_stream_does_not_use_b_frames -oac mp3lame -lameopts abr:br=56 -ovc lavc "
+ "-lavcopts vcodec=flv:vbitrate=200:mbd=2:mv0:trell:v4mv:cbp:last_pred=1:dia=-1:cmp=0:vb_strategy=1 "
+ "-vf scale=" + widthOfFile + ":" + heightOfFile + " -ofps 12 -srate 22050";
try
{
System.Diagnostics.ProcessStartInfo sinfo = new System.Diagnostics.ProcessStartInfo();
sinfo.UseShellExecute = false;
System.Diagnostics.Process.Start(FilestartInfo);
CatchImg(flv_file, imgFile);
}
catch
{
return "";
}
//
return "";
}
#endregion
}



这段代码有问题:我也找不出来,
视频传上去了,
但是没有转换成功,
图片也没截取出来


--如果有实用代码的,直接发给我更好!!!

-------------------------------- DotNetTextBox V6.0.x 商业版更新历史 -------------------------------- 2016/10/10 Version 6.0.10 For VS2015 特别声明:由于联系不上原作者,此版本为自已在修复老项目时,顺带修复了该组件的部份错误. 为了方便维护老项目的网友们,故此发布修正的版本(更新版本号的目的仅为方便标识不同版本).此源码仅供自行学习研究使用,本人不承担由此产生的任何法律后果 请原作者与我联系,以方便我将此源代码交回其合并至统一的代码源中,必免版本混乱. 如原作者认为侵权,则请提醒我及时删除我上传的源码(其它网友自行上传的与我无关) csdn.com发布地址:http://download.csdn.net/detail/egman/9630141 github发布地址:https://github.com/egman77/DotNetTextBox (保持最新) 我的联系邮箱;egman@163.com Updates: 1)修正当插入Word文件,如果内容为空,没有任何提示且上传菜单(但选定的文件名已消失)仍然存在的问题。 更改为: 当文件内容为空时,服务端给出"文件内容为空"的提示,并关闭上传菜单。 2)修正当插入Word文件,未选定文件而直接点击导入编辑时,没有任何提示且上传菜单仍然存在的问题。 更改为: 当未选择上传文件时,浏览器端给出"未选择任何文件"的提示,并保留上传菜单。 (服务器端保留仍提示"未选择任何文件"的功能,但正常情况下,不会显示此提示。) 2016/9/14 Version 6.0.9 For VS2015 特别声明:由于联系不上原作者,此版本为自已在修复老项目时,顺带修复了该组件的部份错误. 为了方便维护老项目的网友们,故此发布修正的版本(更新版本号的目的仅为方便标识不同版本).此源码仅供自行学习研究使用,本人不承担由此产生的任何法律后果 请原作者与我联系,以方便我将此源代码交回其合并至统一的代码源中,必免版本混乱. 如原作者认为侵权,则请提醒我及时删除我上传的源码(在www.csdn.net中发布)(其它网友自行上传的与我无关) csdn.com发布地址:http://download.csdn.net/detail/egman/9630141 github发布地址:https://github.com/egman77/DotNetTextBox (保持最新) 我的联系邮箱;egman@163.com Updates: 1)修正在VS2010以上时,无法正确显示控件的问题。 2)修正设置With属性 值后缀为%时,运行出错问题。 3)修改默认Framework从V2.0提升到V3.5 4)修改默认支持AJAX (原来ie11以上运行时,会导致页面失去响应) 5)源代码解决方案简化,支持vs2013以上版本打开,项目默认支持ajax 2009/06/23 Version 6.0.8 For VS2005/2008 Updates: 1)去掉现在基本没法使用的插入EXCEL表格功能,改为无组件的导入EXCEL文档功能(测试中,导入excel文档必须符合数据库格式,否则导入数据将不全)。 2)更新编辑器的部分文字资源。 3)修正4号与5号字体大小一样的BUG! 2009/06/15 Version 6.0.7 For VS2005/2008 Updates: 1)修正word导入功能中如果选择了保存word文档到服务器,那么下次相同的文件将不能再次导入的BUG! 2009/06/02 Version 6.0.6 For VS2005/2008 Updates: 1)修正了6.0.5版本增加功能后出现上传后出错的严重BUG。 2009/05/23 Version 6.0.5 For VS2005/2008 Updates: 1)修正了上传远程图片文件时可能出现404的错误。 2)修正插入部分远程URL图片时可能出现无法显示的错误。 3)修正FireFox浏览器下弹出窗口自适应大小功能不正常的BUG。 4)改进了多文件上传后自动选择添加到上传列表的文件。 5)改进了如找不到对应语言文件则使用默认语言的功能。 2009/05/15 Version 6.0.4 For VS2005/2008 Updates: 1)修正IE8非兼容模式下的部分功能及页面不可用的BUG! 2)修改MSN在线状态检测地址为官方地址. 3)修改ICQ在线状态检测地址为官方地址. 2009/05/11 Version 6.0.3 For VS2005/2008 Updates: 1)修正了IE5.5和IE6.0浏览器下上传弹出窗口显示不完全的BUG! 2)修正打开上传窗口时会弹出参数无效的BUG! 3)增加了在IE8浏览器下控件显示不正确的解决办法(更新到faq.htm页面)! 2009/03/23 Version 6.0.2 For VS2005/2008 Updates: 1)修正多文件上传的严重BUG! 2)优化了多文件上传的性能! 3)优化了多文件上传时的一些细节! 2009/02/14 Version 6.0.1 For VS2005/2008 Updates: 1)修正使用vs2008项目文件打开默认项目时出现不能通过编译的BUG! 2)修正AjaxSupport目录下部分源文件未与最新版本同步更新! 3)修正插入特殊字符中有三个特殊字符插入后变为?号的BUG! 4)修正插入Flash的时候无法使用绝对全路径的BUG! 5)修正自动保存的图片没法加入水印的问题。 6)修正自动保存图片功能开启后,内容中带有视频内容提交会出错的BUG。 7)修正自动保存图片功能会对本地域名的图片也会重新保存一次的BUG。 8)修正获取远程页面功能在获取部分页面时乱码的BUG! 9)增加批量上传文件的功能,同时优化了所有模块的上传文件功能。 10)所有弹出的模态窗口现在可根据内容自动调整高度及宽度,杜绝旧版本在一些浏览器下显示窗口内容不完全的BUG。 11)导入Word功能升级到V2.0,修正导入后有些样式导入不完全的问题,同时优化了导入word文档时的性能! 12)更新了控件的部分语言资源文件。 13)更新控件可视化配置工具至1.0.3。 2008/10/27 Version 5.0.9 For VS2005/2008 Updates: 1)修正重命名功能中文件名结尾带.造成的出错问题! 2)修正字号大小显示外观1号最小,7号最大的BUG! 3)修正firefox下与jquery不兼容问题! 4)修正firefox下脚本的一些问题! 5)修正firefox3.0以上版本浏览控件界面显示不正确的问题! 2008/10/23 Version 5.0.8 For VS2005/2008 Updates: 1)增加了上传功能中重命名文件名的安全字符过滤! 2)修正上传功能中存在的一个安全问题!(重要更新)! 3)修正GIF图像添加文字水印无法自定义大小的BUG! 4)修正GIf图像生成缩略图质量较低的BUG! 2008/10/20 Version 5.0.7 For VS2005/2008 Updates: 1)修正每次新建文件夹默认目录名相同导致的问题,现在新建文件夹的默认目录名以newFolder年-月-日-时分秒来命名,杜绝重名的情况出现。 2)修正文件重命名功能中如果文件名是1.jpg.jpg这样形式的话,重命名的时候只会出现1而不是1.jpg的BUG! 3)修正选择字号大小功能出现掉失HTML格式的BUG。 4)修正不能对单帧GIF图片添加水印的问题,但GIF动画暂时还不支持添加水印! 5)重写及优化了控件html代码转xhtml代码的JS方法,现在即时转换XHTML的性能更佳,也修正了原来开启xhtml转换会破坏代码的BUG!(此功能测试稳定后会改为默认功能,即控件默认状态下输出的就是符合XHTML标准的代码,现在暂时请用xhtml属性来开启转换) 2008/6/23 Version 5.0.6 For VS2005/2008 Updates: 1)修正控件Length属性统计的字符数包含HTML字符的BUG,现在Length属性仅统计纯文本的字符数! 2)修正开启自动保存图片到本地的功能后网络图片过多的时候出现保存图片地址重复的BUG! 3)修正控件段落格式及选择字体的下拉列表功能会使页面其它Select选择框消失的BUG! 4)修正去掉下拉列表功能后,控件无法正常使用的BUG! 5)修正商业版采用Asp.Net Ajax支持方式编译后出现的一些BUG! 6)修正FIREFOX2.0下控件下拉列表框出现位置不正确的BUG! 7)增加强大的代码格式清理功能!菜单功能配置值为:formatstripper! 8)增加getImagesPathID属性,当属性不为空时,将在插入图片到编辑器的同时将图片地址即时插入属性指定的页面ID! 9)增加自动及手动内容分页的强大功能,通过getAutoPage(自动分页)及getManualPage(手动分页)属性获取分页内容! 10)完善及修正了部分帮助文档及新增内容分页演示实例! 11)修正及更新控件可视化配置工具(版本号1.0.2),增加了新版本中出现的新功能添加(代码清理及手动分页功能及修正生成上传配置文件中的错误)! 2008/5/20 Version 5.0.5 For VS2005/2008 Updates: 1)修正去掉代码状态功能后出现其它状态切换图标显示不正确的BUG! 2)修正上传图片功能在修改图片的时候切换到水印控制会出现脚本错误的BUG! 3)修正上传媒体文件功能插入FLV时调整播放器高度及宽度失效的BUG! 4)修正控件自带的FLV播放器播放某些视频时画面尺寸不按比例的BUG! 5)修正上传媒体文件功能中FLV不能正确显示文件图标的BUG! 6)增加AjaxSupport目录,使用此目录的文件覆盖原版同名文件后重新编译即可解决在Asp.Net Ajax UpdatePanel下工作不正常的BUG!(不需要使用asp.net ajax的用户无需覆盖此目录的文件) 7)增加asp.net ajax的演示例子(AjaxSupport/DotNetTextBoxWebSite/下) 8)FLV播放器增加全屏播放的功能! 9)优化了控件核心的部分代码! 2008/5/12 Version 5.0.4 For VS2005/2008 Updates: 1)修正XHTML1.0定义下的页面无法显示发光字的BUG! 2)修正在带有中文目录的网站路径下使用控件会出现找不到路径的BUG! 3)修正控件上传目录初始设置不支持中文目录的BUG! 4)修正当三级或以上级别目录调用控件时图片相对路径转换不正确的BUG! 5)增加提取编辑器内容中FLASH及FLV播放地址的功能,与提取图片地址使用方法相同(getflvurl和getflashurl属性)! 6)优化了控件上传页面中的部分JS脚本! 2008/4/28 Version 5.0.3 For VS2005/2008 Updates: 1)修正二级目录调用控件时自动保存保存远程图片功能出错的BUG! 2)修正进行某些操作之后Undo/Redo失效的BUG! 3)修正采用BR换行模式后出现列表项功能使用不正常的BUG! 4)修正DIV弹出窗口在浏览器底部无法自动向上调整的BUG! 5)修正上传文件、上传模板及上传媒体文件功能中文件无法删除的BUG! 6)调整了控件弹出窗口的方式,部分功能的模式窗口转换为Div+CSS的窗口! 7)调整pathtype属性默认值为AbsoluteFull(绝对全路径)! 8)增加对VS2008的支持,使用VS2008的用户请使用DotNetTextBox2008.sln打开项目,VS2005的用户则使用DotNetTextBox2005.sln打开项目(VS2008下控件的设计时显示尚不完美,以后版本将会尽快完善)! 2008/3/25 Version 5.0.2 Updates: 1)修正扩展编辑框功能不能无限增加的BUG! 2)修正代码状态下空格不能自动换行的BUG! 3)修正IE浏览器下特殊格式的闪烁特效无效的BUG,现在IE浏览器下闪烁特效用发光字体特效代替! 4)修正二级以上目录调用控件时插入文件的路径转换无效的BUG 5)完善了水印控制的功能,文字水印支持更换字体及颜色! 6)优化了上传功能中返回上层目录的速度! 7)增加强大的可视化菜单配置及上传配置的生成工具,方便用户自行生成控件的相关配置文件(测试中)! 2008/3/02 Version 5.0.1 Updates: 1)修正代码状态下按回车换行过大的BUG! 2)改良了编辑器回车换行的方式,旧版本按回车后以段落换行(

)的方式现在已更改为
换行,好处是按回车换行后行与行的间距不会过大了(可用新增的NewLineMode属性设置为P恢复为段落换行)! 3)改良了代码状态下编辑框不会自动换行而导致不能方便查看代码的问题,现在代码状态下能自动换行! 4)新增GetImagesUrl属性,可以通过该属性获取控件提交内容里所有图片的URL地址(Webeditor1.GetImagesUrl[图片序号].ToString()),得到的图片地址将可用于首页新闻的图片显示或幻灯片显示。 2008/2/28 Version 5.0.0 Updates: 1)全新的可拖曳菜单工具栏,让每个使用者可视化构建自己的个性化在线编辑器! 2)更强大的Word文档导入编辑器功能,无需特殊的服务器权限或安装客户端组件,只要拥有最基本的ASP.NET读写文件权限即可实现导入Word文档,并且还支持最新的DOCX文档格式! 3)更细致的工具栏区域划分! 4)全新的可隐藏菜单工具栏配置! 5)更强大的的XHTML代码转换功能,支持即时的XHTML代码转换! 6)更多功能的细致化修正及改良! ------------------------------ http://www.aspxcn.com.cn
Updates: 1)增加防止COOKIE欺骗攻击的加密KEY属性设置,编辑器用到的COOKIE都将会进行加密。 2)更新编辑器帮助文件。 3)文字水印调整为只添加到图像宽高>100像素的图片上面,并且调整编辑器默认配置添加的是图片水印! 2010/04/02 Version 6.1.6 For VS2005/2008 Updates: 1)针对IIS6.0文件解析高危漏洞进行修正。 2)上传功能的一些优化。 3)文件夹重命名的一些改进。 2010/03/08 Version 6.1.5 For VS2005/2008 Updates: 1)修正了一个安全方面的BUG。 2)修正保存远程图片到本地功能的保存路径问题。 3)修正保存远和图片到本地功能在IE6及IE7的提交BUG。 4)修正上传图片界面中对齐方式不能生效的BUG! 2010/01/15 Version 6.1.4 For VS2005/2008 Updates: 1)加入保存远程图片到本地的功能图标到菜单栏,配置代码为remoteupload。 2)修正FireFox下插入WMA等音频文件不能播放的BUG. 3)修正关闭图像预览后可能出现的BUG. 4)修正保存图片到本地的一些BUG. 5)更新配置器,增加保存远程图片到本地功能的配置. 2009/12/10 Version 6.1.3 For VS2005/2008 Updates: 1)修正了firefox浏览器下编辑器宽度设置为100%会出错的BUG。 2)优化了图片水印功能,图片水印可以4:1为比例自适应图片。 3)增加水印调整功能的左上,左下,右上,右下角的位置(默认右下)。 4)增加图片水印是否半透明的选项。 2009/11/25 Version 6.1.2 For VS2005/2008 Updates: 1)修正插入视频的地址是mms、rtsp的话,路径就不对的BUG。 2)优化了上传成功后的处理代码。 3)改进了插入表情图标的功能(增加了多组表情,并且鼠标经过表情后可自动放大表情)。 4)优化了编辑器的整体结构。 2009/09/30 Version 6.1.1 For VS2005/2008 Updates: 1)修正上传管理中删除文件夹及重命名文件夹导致Session失效的BUG。 2)改善了新建文件夹的方式,按取消按键后文件夹将不会被新建。 3)重新用回Cookie方式储存参数,并且加强COOKIE的安全性。(因为session在操作删除目录后会掉失) 2009/08/07 Version 6.1.0 For VS2005/2008 Updates: 1)改用Session代替部分Cookie储存上传功能所用到的配置数据,以便让编辑器上传更加安全。 2)修正一个文件格式上传时存在的安全性问题。 3)上传页面去掉所有input隐藏属性储存参数,改用ViewState储存,并加入ViewState的防改措施。 2009/07/05 Version 6.0.9 For VS2005/2008 Updates: 1)修正插入表格后在表格单元格插入内容会插到另一个单元格的BUG。 2)控件可视化配置工具中的功能显示中插入excel表格改为导入Excel表格。 2009/06/23 Version 6.0.8 For VS2005/2008 Updates: 1)去掉现在基本没法使用的插入EXCEL表格功能,改为无组件的导入EXCEL文档功能(测试中,导入excel文档必须符合数据库格式,否则导入数据将不全)。 2)更新编辑器的部分文字资源。 3)修正4号与5号字体大小一样的BUG! 2009/06/15 Version 6.0.7 For VS2005/2008 Updates: 1)修正word导入功能中如果选择了保存word文档到服务器,那么下次相同的文件将不能再次导入的BUG! 2009/06/02 Version 6.0.6 For VS2005/2008 Updates: 1)修正了6.0.5版本增加功能后出现上传后出错的严重BUG。 2009/05/23 Version 6.0.5 For VS2005/2008 Updates: 1)修正了上传远程图片文件时可能出现404的错误。 2)修正插入部分远程URL图片时可能出现无法显示的错误。 3)修正FireFox浏览器下弹出窗口自适应大小功能不正常的BUG。 4)改进了多文件上传后自动选择添加到上传列表的文件。 5)改进了如找不到对应语言文件则使用默认语言的功能。 2009/05/15 Version 6.0.4 For VS2005/2008 Updates:
-----------------------------
DotNetTextBox 更新历史
-----------------------------
2007/8/18
Version 3.3.1 Free

Updates:
1) 改进文件重命名的安全BUG,现在重命名功能不可修改文件后缀名称。
2) 改进了自定义插件(弹出窗口)的功能,配置中仅需定义页面名称即可,控件会自动识别系统文件夹位置。
3) 优化部分代码。
4) 增加商业版的演示地址。


2007/8/15
Version 3.3.0 Free

Updates:
1) 修正控件选择框样式会影响页面其它选择框样式的BUG。
2) 修正XP风格表情里其中一个图标与其它图标大小不一致的BUG。
3) 修正在非简体中文操作系统里控件调用中文字体不正确的BUG。
4) 修正选择字体功能中部分中文字体不能正确应用的BUG。
5) 优化了控件部分户端代码。
6) 清理了table.aspx页面中的多余代码。

2007/8/13
Version 3.2.9 Free

Updates:
1) 修正预览功能不能正常显示动态效果的BUG。
2) 修正控件在Opera下切换状态后不能聚集编辑框的BUG。
3) 去掉特殊字体格式中飞行效果,因为此效果与文字移动效果雷同。
4) 使用帮助.CHM里的常见问题增加对应用全局样式后不能使用功能页面的解决方法。
5) 优化了控件部分户端代码。
6) 更新了部分多语言的翻译文字。

2007/8/10
Version 3.2.8 Free

Updates:
1) 修正控件添加在页面表格以外的地方时会导致粘贴WORD功能工作不正常的BUG。
2) 修正控件在iframe内调用时右键菜单功能失效的BUG。
3) 修正上一版因修正BUG而造成的转换预览状态后仍然是设计状态的BUG。
4) 修正上传图片功能中生成自定义缩略图名称有误的BUG。
5) 更新了使用帮助.chm里的常见问题说明及CHM的编译方式。
6) 优化了控件部分的客户端代码。


2007/8/5
Version 3.2.7 Free

Updates:
1) 修正插入MSN、QQ、ICQ在线状态图标时会出现焦点缺失的BUG。
2) 修正远程上传图片后自动生成文件名不正确的BUG。
3) 修正使用showModalDialog模态窗口打开控件所在页面时控件无法使用的BUG。


2007/7/31
Version 3.2.6 Free

Updates:
1) 修正插入信纸功能中插入空白之后右键菜单失效的BUG。
2) 修正状态栏缩减扩展功能图标在某些情况下显示不正常的BUG。
3) 修正在多控件下状态栏转换时样式不正常的BUG。
4) 修正IE浏览器下禁用编辑源码的时候仍然可以编辑的BUG。
5) 修正非IE浏览器下无法禁用编辑源码的BUG。
6) 修正Opera浏览器下转换预览状态后出现内容显示不正确的BUG。

2007/7/29
Version 3.2.5 Free

Updates:
1) 修正有些内容不能在编辑框内正常粘贴(粘贴了在编辑器外)的BUG。
2) 修改插入超链接的功能使其支持为文本添加超链接。
3) 修改了一些菜单功能的多语言说明。
4) 新增按键形式的控件状态栏,可通过toolbar.css样式文件控制其外观,并且按键形式的状态栏为默认状态栏,可通过新增的ImageStatusBar属性设置为True来换回以前图像形式的状态栏。
5) 将粘贴功能区分为粘贴内容、粘贴文本、粘贴WORD三种功能。
6) 翻译了插入超链接功能里的打开方式说明。
7) 更新了部分的菜单功能图标。

2007/7/26
Version 3.2.4 Free

Updates:
1) 修正在线帮助中心功能无法正常使用的BUG。
2) 修正Default界面下插入自定义表情脚本出错的BUG。
3) 修正了当选择了一个编辑对象的时候再插入表情图标会出现脚本错误的BUG。
4) 改进了转换相对及绝对路径的算法,此算法除了修正了上一版本无法正确转换全部路径的BUG外,还修正了以前算法在非IE浏览器下可能引起的脚本停止响应的严重BUG。
5) 修改Word文档导入功能生成的图片文件名为自动按日期时间命名,避免生成的时候与上传目录已有的图片文件重名。
6) 优化了部分控件的客户端脚本代码。
7) 改进的插入超链接功能,支持打开窗口方式的选择,并且修正原来功能在FIREFOX浏览器下不可用的BUG。

2007/7/21
Version 3.2.3 Stable

Updates:
1) 修正上传功能设置为自动改名后,上传文件之后网络地址栏的地址仍然是文件原名的BUG。
2) 修正控件在浏览器滚动条下端位置时弹出DIV窗口会出现显示位置有误的BUG。
3) 修改原ImgPathType属性名称为PathType,并且路径形式的切换对插入文件路径和插入图片路径都生效(原来的属性仅对图片路径生效)。
4) 更新了使用帮助文件中关于新属性的说明。

2007/7/20
Version 3.2.2 Stable

Updates:
1) 去掉了多个无用的控件内置属性,精简了控件的体积,并且优化了代码。
2) 增加ToolBarBgImg的内置属性,此属性用于设置控件菜单栏的背景图片。
3) 上传功能增加过滤显示的功能,文件列表将只会显示当前上传功能所允许上传类型的文件。如图片上传功能里文件列表将只会显示*.jpg、*.gif、*.png、*.bmp等图像文件。
4) 修正了上传功能中重命名文件的时候文件列表返回顶端的BUG,现在重命名的时候会自动聚焦到要重命名文件名的位置上。
5) 修正了上传功能中文件创建日期不正确的BUG。
6) 修正了多个使用上出现的细微BUG。

2007/7/18
Version 3.2.1 Stable

Updates:
1) 修正插入QQ,MSN,ICQ在线图标的翻译错误。
2) 增加全部内置功能下三行排列样式界面的演示及配置文件。
3) 增加上传及插入模板的功能,并在全部内置功能的演示中代替了插入EXCEL表格的功能(由于此功能需要服务器安装office2000,使用环境有限制,所以从演示中去掉,但保留此功能,有需要请自行在配置文件中增加excel)。
4) 压缩包中附带了word文档导入功能的插件包,有需要的朋友可自行添加此功能(此功能有使用环境的限制)。

2007/7/06
Version 3.2.0 Stable

Updates:
1) 修正上传功能中如果文件名带有空格字符时就会出现插入地址不正确的BUG。
2) 修正了一些设计状态时的BUG。
3) 修正上一版增加功能引起的不能修改图片的BUG。
4) 修正Opera浏览器下编辑时出现的一些BUG。
5) 修正预览状态下提交内容后图片消失的BUG。
6) 插入表情图标功能由原来的弹出式窗口改为DIV窗口,更加美观实用。
7) 计算器功能由原来的弹出式窗口改为DIV窗口,更加美观实用。
8) 右键菜单增加创建和修改链接的功能。
9) 插入当前日期功能用更强大的日期选择控件功能代替。
10) 去掉插入MSN,QQ,ICQ在线图标功能的脚本弹出窗口,用DIV窗口代替,提高这些功能在IE7下的易用性。
11) 上传图像功能增加保持纵横比的选项功能。
12) 使用帮助.CHM文件中增加控件内置属性的说明列表(简易形式)。
13) 此版本是稳定版本,以后架构将不会再作大的更新,如果有增加功能或者修正BUG将会采用增量更新包形式提供。

2007/7/04
Version 3.1.9 beta

Updates:
1) 增强页面信息采集功能的链接分析能力,当采集图片或超链接的时候会自动将相对路径转化为真实的网络路径,并且修正了采集功能的一些已知BUG。
2) 上传功能增加文件查找功能,方便文件较多的时候快速找到自己想要的文件。
3) 更新了所有的多语言资源文件的部分翻译。

2007/7/03
Version 3.1.8 beta

Updates:
1) 完全重整目录结构,针对旧版本因为控件目录过多及路径属性设置繁复,现在所有目录都集中到system_dntb这个系统目录底下,而且路径属性设置也精简为一个(同样支持web.config全局设置)。
2) system_dntb这个目录名称可以改动名称或者放置到任何位置,只需设置一下systemfolder属性的相对路径,但system_dntb下的所有文件名及目录名请不要改动,否则控件将不能正常工作!
3) 修正插入图片功能中引用外部网络地址会出现插入地址错误的BUG。
4) 修正控件在Opera浏览器使用中出现的一些BUG。
5) 修正了控件右键菜单判断选择状态不正确的BUG。
6) 优化了非IE浏览器下的脚本性能。
7) 将编辑器设置为在缩放或移动过程中持续更新元素外观,以达到更好的所见即所得效果。
8) 增加插入图片的路径类型选择功能,可通过ImgPathType内置的属性选择插入图片地址为相对路径(Relative)如:system_dntb/upload/xx.gif、绝对根路径(AbsoluteRoot)如:/dotnettextbox/system_dntb/upload/xx.gif、绝对全路径(AbsoluteFull)如:http://aspxcn.com.cn/dotnettextbox/system_dntb/upload/.gif。属性默认值为相对路径,此功能将大大方便以后文章的迁移!
9) 去掉获取远程页面的功能,改用更强大的远程信息采集功能代替,拥有多种的信息采集方式。
10) 增加强大的查找及替换功能,并且默认菜单配置用查找替换功能代替在线帮助中心功能,如果各位有需要用到在线帮助中心功能,请自行在菜单配置文件里添加help
11) 增加对没有安装VS2005的虚拟主机运行控件出现错误的解决办法。
12) 特别注意,因为此版改动太大,旧版本升级最好完全覆盖以保证控件正常运行!

2007/6/29
Version 3.1.7 beta

Updates:
1) 修正FIREFOX下修改表格背景颜色无效的BUG。
2) 修正在多控件下右键菜单出错的BUG。
3) 继续清理了一些无用的JS代码。

2007/6/28
Version 3.1.6 beta

Updates:
1) 增加AdjustSize属性,用于设置扩展及收缩编辑框功能的增减幅度,默认值为50。
2) 增加对图片及文字水印的座标位置控制。
3) 增加新的右键菜单代替原来的浏览器菜单,同时增加右键格式引用及代码样式的功能。
4) 右键菜单的粘贴功能支持自动检测并提示清理WORD格式的功能。
5) 去掉一些无效的旧属性,清理了一些无用的JS代码。
6) 完善了说明帮助的部分说明。

2007/6/25
Version 3.1.5 beta

Updates:
1) 修正在VS2005设计模式中无法动态调整控件高度的BUG。
2) 修正height属性无效的BUG。
3) 修正CodeHighlighter外挂插件调用图片位置指向不正确的BUG。
4) 控件界面的右下角增加了动态扩展收缩编辑框的新功能。
5) 更换CodeHighlighter插件为最新的版本,新版本支持更多的语言。
6) 将CodeHighlighter插件需要用到的Languages目录移到plugin目录下,以免与DotNetTextBox控件必须目录混淆。
7) BIN目录去掉无用的DLL。

2007/6/24
Version 3.1.4 beta

Updates:
1) 修正插入表情图标时出现的BUG。
2) 修正控件在非根目录调用的时候在设计模式中会出现控件找不到所需皮肤的BUG。
3) 修改web.config里functionfolder和skin的全局设置属性,提高路径的设置易用性。
4) 去掉DOC目录及其包括的所有帮助文件,并将这些帮助文件修改完善后编译为"使用帮助.chm"的单一文件。

2007/6/23
Version 3.1.3 beta

Updates:
1) 更换了FLV的播放器核心,现在支持即时的自动播放了。
2) 更换了自动播放MP3为FLASH核心,现在MP3自动播放可兼容所有浏览器。
3) 去掉所有插入自动播放文件之后弹出的脚本窗口,提高对IE7.0的易用性。
4)播放自动播放文件界面里宽高、音量、循环的属性设置。

2007/6/21
Version 3.1.2 beta

Updates:
1) 修正部分自动播放文件不兼容IE7的BUG。
2) 修正在检测自动播放文件格式时javascript代码出现的一些BUG。
2) 修正MenuConfig、configFolder属性在VS2005中设置属性值后会自动变为绝对路径的BUG。
3)修正在Opera浏览器下选择字体颜色功能无法取得所选字体原来颜色的BUG。
4) 增加对FLV文件自动播放的支持(兼容所有浏览器)。
5) 默认的自动媒体文件格式增加SWF、WMA、FLV
6) function文件夹增加flv.swf文件(FLV播放器核心文件)。
7) 更新了所有的多语言资源文件。

2007/6/18
Version 3.1.1 beta

Updates:
1) 修正编辑器不支持Opera浏览器的BUG,现在已经能完美支持IE5+、Opera、FireFox等主流浏览器。
2) 修正控件在设计模式时出现找不到config配置文件但运行时却正常的BUG。
3)修正控件configFolder属性的一个BUG。
4) 修改一处语言文件的翻译。
5) 更新文件包括uploadImg.aspx、uploadFile.aspx、table.aspx以及所有的多语言资源文件。

2007/6/17
Version 3.1.0 beta

Updates:
1) 修正在多控件模式下控件部分功能使用不正常的BUG。
2) 修正控件使用母版页时FIREFOX浏览器无法使用的BUG。
3)修正上传页面的一处语言显示BUG。
4) 修正当上传索引GIF文件时显示错误信息的BUG。
5) 增加上传远程图片到服务器的选项,并且远程图片同样支持水印及自动命名等功能。
6) 更新文件包括emot.aspx、uploadImg.aspx以及所有的多语言资源文件。

2007/6/1
Version 3.0.9 beta

Updates:
1) web.config中新增configfolder、functionfolder、skin三个必须目录的全局路径设置,以往旧版本如果要在不同级别子目录的页面调用控件都要单独设置控件的configfolder、functionfolder、skin三个目录的路径属性才能正常使用,新版只需要在web.config定义正确的路径设置(详细看web.config中新增的定义),那么这个虚拟目录下所有根目录及子目录的页面调用控件都不需再设置这三个属性的路径,同时也不会像以往版本那样容易引起路径的混乱影响控件正常使用。
2) 除新增加的全局设置外,控件也同时保留configfolder、functionfolder、skin三个路径的控件内置属性,并且优先级大于关联的全局设置,比如在web.config的skin全局属性设置为使用default界面,但在调用页面单独设置了skin属性为使用xp界面的话,那么该页面将启用XP界面,如果没有单独设置skin属性,那么就启用全局属性的default界面。
3) 控件内置的menuconfig及uploadconfig属性值设置有变,原来menuconfig要默认要设置相对路径如:config/menu/default.config,现在只需设置为defautl.config,即只需指定配置文件的文件名称即可,同样uploadconfig的设置也只需要指定配置文件的文件名称即可(请参考相关例子)。
4) DOC目录下增加“控件必须目录的路径设置”说明文件。

2007/4/12
Version 3.0.8 beta

Updates:
1) 修正超过一定时间之后打开上传页面出现读取语言文件目录错误的BUG。
2) 修正FireFox浏览器下控件打印功能失效的BUG。
3) 优化了国际化语言(多语言)模块的代码。

2007/4/11
Version 3.0.7 beta

Updates:
1) 控件添加自适应的国际化语言(多语言)支持,根据检测客户端浏览器语言来自动选择最合适的语言界面,如无匹配语言则默认显示英文界面(提供简繁英三种界面语言,用户可自行制作其它国家的语言文件)。
2) 修正控件检测浏览器版本的BUG,现在已经能支持所有gecko内核的浏览器。
3) 因自适应多语言的需要,修改了skin/default/及skin/xp下emot.htm为emot.aspx,同时img目录下的edit.gif、source.gif、preview.gif修改为edit_xxx.gif、source_xxx.gif、preview_xxx.gif,其中XXX为相应的语言代码简称,请从旧版本升级的用户注意。
4) doc/目录下新增“制作语言文件.txt”的说明文件。
5) 感谢热心网友King(qq:153920708)精心翻译英文版本的语言文件。

2007/4/5
Version 3.0.6 beta

Updates:
1) 上传功能的文件列表改为按文件创建日期排序,方便上传文件比较多的时候找到文件插入。
2) 优化了控件在IE浏览器下的脚本性能。

2007/4/2
Version 3.0.5 beta

Updates:
1) 修正上传功能修改路径时出现地址指向错误的BUG。
2) 修正上传自动播放功能插入地址错误的BUG。
3) 修正Firefox下字体更改的一处BUG。
4) 上传配置增加watermarkOption参数,用以开启上传图片时供用户控制的水印选项。
5) 上传图片界面增加显示当前水印的开启状态。

2007/4/2
Version 3.0.4 beta

Updates:
1) 重写控件大部分的客户端脚本,经测试已经能在FIREFOX浏览器下正常使用。
2) 根据用户建议,将所有颜色选择的模态窗口改为非弹出式的DIV仿OFFICE XP颜色选择框。
3) 修正之前版本的已知BUG。
4) 修正部分说明文件。

2007/1/29
Version 3.0.3 beta

Updates:
1) 修正母版页中不能取TEXT值的BUG。
2) 修正FIREFOX中不能在线编辑的问题,但大部分功能仍不能正常工作,将在下一版本中修正。
3) 优化部分客户端代码。
4) 更正及增加部分说明文件。


2007/1/18
Version 3.0.2 beta

Updates:
1) 修正不支持XHTML的BUG,现在无需删除页面xhtml定义也能正常显示控件。
2) 修正IE6浏览器打开上传功能等窗口界面时显示不完整的BUG。
3) 改进控件height属性,使其与toolbarheight、editheight、statusheight的高度相关联。


2007/1/18
Version 3.0.1 beta

Updates:
1) 重新编写控件的所有后台代码,使用基于Asp.Net2.0结构开发的全新控件结构,完全修正旧架构不佳的性能及大部分已知BUG及兼容问题。
2) 重新编写控件大部分客户端代码,实现更多功能并且修正部分已知BUG。
3) 更新大部分功能模块页面,修正页面BUG。
4) 更新大部分控件的属性值及设置。
5) 更新控件全部的演示例子
6) 移除字体、字体大小、图标效果等属性值,改由相应skin目录下toolbar.css及editor.css文件控制显示效果。
7) 增加更强大的上传管理及控制的功能模块。
8) 增加更强大的插入表格功能模块。
9) 增加菜单功能模块配置功能,通过配置config文件可随心所欲地排列及增减各种控件内置功能模块。
10) 增加上传权限配置功能,通过配置config文件可具体控制不同用户的上传权限。
11) 增加外接插件功能(plugin)及相关参数,控件演示中已包括了实现代码高亮功能和执行命令形式的外接插件功能。
12) 增加粘贴时自动判断内容是否带word格式并提示是否清除word格式的功能。

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧