fckeditor 编辑器在配置图片上传路径后,添加的图片都会在这个文件下,
如果如果很多,都堆积在一起会导致打开网站时很卡,
请问下有什么办法,可以上传图片的时候,按时间生成文件夹。
忘知道者帮忙。谢谢
------解决方案--------------------------------------------------------
打开网站是很卡和文件夹多少有关系?
受教了,等高人,
------解决方案--------------------------------------------------------
有关系的吗,你在某个页面是要先加载全部图片的吗?
------解决方案--------------------------------------------------------
文件夹里应该有个ASPX文件可以修改图片传具体忘了,自己找找!
------解决方案--------------------------------------------------------
不太清楚,里面应该可以修改原代码,以前看过一下.那时他的做法不是按日期去新建文件夹,而是根据不是人上传在不同的文件件里。不过我想做法应该差不多的,上网找找
------解决方案--------------------------------------------------------
//要判断服务器端文件或者目录的存在性,需要添加命名空间System.IO:
//ASP.NET
using System.IO;
if(Directory.Exists(Server.MapPath("~/Back")))
{
//存在目录
}
else
{
//不存在目录
Directory.CreateDirectory(Server.MapPath("~/Back")); //创建该目录
}
if(File.Exists(Server.MapPath("~/Back/Data.xml")))
{
//存在文件
}
else
{
//不存在文件
Directory.Create(Server.MapPath("~/Back/Data.xml"));//创建该文件
}
//Server.MapPath("~/Back")用于得到该虚拟目录或虚拟文件的绝对路径
------解决方案--------------------------------------------------------
好像没影响吧,我也用的这个编辑器,怎么没你说的卡?
------解决方案--------------------------------------------------------
所有图片放一个文件夹不好管理是真的。对于会卡这一点。没感觉到。好像跟卡没关系的吧
------解决方案--------------------------------------------------------
fckeditor在上传图片时,默认是使用自带的上传程序。你可以使用自己的上传程序替代默认的上传程序,实现任何你自己想做的功能。
在fckconfig.js中,找到如下代码
FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser?Type=Image&Connector=../../connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
修改为自己的处理程序即可,比如
FCKConfig.ImageBrowserURL = /Common/FileManager.aspx';
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
可以的 我现在就是这样弄 等我找找
文件太多的话是在服务器上浏览不方便,打开文件夹的时候特别慢,网页倒没感觉什么
------解决方案--------------------------------------------------------
我现在机器上没有源代码了,你告诉我个邮箱,我给你发个修改的dll
是自动按月份命名的
------解决方案--------------------------------------------------------
更改 FileWorkerBase.CS 的源码, 自己看就能看明白的 然后重新编译组件
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
尤其是文件名称是纯数字的时候
与文件夹的文件数量的关系更小
这是我试验的结果。
当然有谁参与过WINDOWS设计或者研究很深的我愿意倾听
------解决方案--------------------------------------------------------
- C# code
/* * FCKeditor - The text editor for internet * Copyright (C) 2003-2005 Frederico Caldeira Knabben * * Licensed under the terms of the GNU Lesser General Public License: * http://www.opensource.org/licenses/lgpl-license.php * * For further information visit: * http://www.fckeditor.net/ * * "Support Open Source software. What about a donation today?" * * File Name: Uploader.cs * This is the code behind of the uploader.aspx page used for Quick Uploads. * * File Authors: * Frederico Caldeira Knabben (fredck@fckeditor.net) */using System ;using System.Globalization ;using System.Xml ;using System.Web ;namespace FredCK.FCKeditorV2{ public class Uploader : FileWorkerBase { protected override void OnLoad(EventArgs e) { // Get the posted file. HttpPostedFile oFile = Request.Files["NewFile"] ; // Check if the file has been correctly uploaded if ( oFile == null || oFile.ContentLength == 0 ) { SendResults( 202 ) ; return ; } int iErrorNumber = 0 ; string sFileUrl = "" ; // Get the uploaded file name. ///2007.8.9修改 ///fckeditor的文件上传默认是不改名的,同时还不支持中文文件名, ///这样一来是上传的文件会变成“.jpg”这样的无法读的文件, ///再就是会有重名文件,当然重名这点倒没什么,因为fckeditor会自动改名, ///会在文件名后加(1)这样来进行标识。 ///但是,我们通常的习惯是让程序自动生成不重复的文件名 ///由年月日时分秒以及三位随机数组成文件名 /// //定义一个随机数 Random objRandom; objRandom = new Random(); int m; //生成一个小于1000的随机数 m = objRandom.Next(1000); //定义一个日期变量 DateTime now = DateTime.Now; //把文件名设置为日期的年月日和时间加上随机数再防止重名 GetExtension是取得文件名的扩展名 string sFileName = now.ToString("yyyyMMddHHmmss")+m.ToString()+System.IO.Path.GetExtension(oFile.FileName); string sFilePath = System.IO.Path.Combine(this.UserFilesDirectory,sFileName); oFile.SaveAs(sFilePath); sFileUrl = this.UserFilesPath + sFileName; /*string sFileName = System.IO.Path.GetFileName( oFile.FileName ) ; int iCounter = 0 ; while ( true ) { string sFilePath = System.IO.Path.Combine( this.UserFilesDirectory, sFileName ) ; if ( System.IO.File.Exists( sFilePath ) ) { iCounter++ ; sFileName = System.IO.Path.GetFileNameWithoutExtension( oFile.FileName ) + "(" + iCounter + ")" + System.IO.Path.GetExtension( oFile.FileName ) ; iErrorNumber = 201 ; } else { oFile.SaveAs( sFilePath ) ; sFileUrl = this.UserFilesPath + sFileName ; break ; } }*/ SendResults( iErrorNumber, sFileUrl, sFileName ) ; } #region SendResults Method private void SendResults( int errorNumber ) { SendResults( errorNumber, "", "", "" ) ; } private void SendResults( int errorNumber, string fileUrl, string fileName ) { SendResults( errorNumber, fileUrl, fileName, "" ) ; } private void SendResults( int errorNumber, string fileUrl, string fileName, string customMsg ) { Response.Clear() ; Response.Write( "<script type=\"text/javascript\">" ) ; Response.Write( "window.parent.OnUploadCompleted(" + errorNumber + ",'" + fileUrl.Replace( "'", "\\'" ) + "','" + fileName.Replace( "'", "\\'" ) + "','" + customMsg.Replace( "'", "\\'" ) + "') ;" ) ; Response.Write( "</script>" ) ; Response.End() ; } #endregion }}