首页  ·  知识 ·  编程语言
FCKeditor实现上传分月目录和文件重命名
佚名  weste.net  .NET  编辑:dezai  图片来源:网络
果你的站比较大,那么可能就要修改上传文件的方法,加上自动重命名和分月目录,修改Uploader.cs: <"BORDER-RIGHT: windowtext 0.5pt solid; PADDIN
果你的站比较大,那么可能就要修改上传文件的方法,加上自动重命名和分月目录,修改Uploader.cs:
/*
 * 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.
            
//string sFileName = System.IO.Path.GetFileName( oFile.FileName ) ;

            
//检查建立分月目录
            string sFolder = DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString();

            System.IO.DirectoryInfo dir 
= new System.IO.DirectoryInfo(System.IO.Path.Combine(this.UserFilesDirectory, sFolder));

            
if (!dir.Exists)
            
{
                dir.Create();
            }


            
//根据日期和随机数设置自动重命名文件
            Random rd = new Random();
            
string sFileName = sFolder + "/" + DateTime.Now.ToString("yyyyMMddHHmmss"+ rd.Next(10).ToString();

            
int iCounter = 0;

            
while (true)
            
{
                
//防止没有扩展名的处理,弃用内置方法
                string sFileExtension = string.Empty;
                
try
                
{
                    sFileExtension 
= oFile.FileName.Substring(oFile.FileName.LastIndexOf('.'), oFile.FileName.Length - oFile.FileName.LastIndexOf('.'));

                }

                
catch
                
{
                    
//Exception ex = new Exception(oFile.FileName);
                    
//throw ex;
                    sFileExtension = ".jpg";
                }

                
string sFilePath = System.IO.Path.Combine(this.UserFilesDirectory, sFileName) + sFileExtension;


                
if (System.IO.File.Exists(sFilePath))
                
{
                    iCounter
++;
                    sFileName 
=
                        sFileName 
+
                        
"(" + iCounter + ")" +
                        sFileExtension;

                    iErrorNumber 
= 201;
                }

                
else
                
{
                    oFile.SaveAs(sFilePath);

                    sFileUrl 
= System.IO.Path.Combine(this.UserFilesPath, sFileName + sFileExtension);
                    
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( 
"" ) ;
            Response.Write( 
"window.parent.OnUploadCompleted(" + errorNumber + ",'" + fileUrl.Replace( "'""\'" ) + "','" + fileName.Replace( "'""\'" ) + "','" + customMsg.Replace( "'""\'" ) + "') ;" ) ;
            Response.Write( 
"" ) ;

            Response.End() ;
        }


        
#endregion

    }

}

原文地址:http://blog.csdn.net/lonestone/archive/2006/08/14/1062870.aspx

本文作者:佚名 来源:weste.net
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读