删除上传文件

2014-10-24 16:01:26  访问(1769) 赞(0) 踩(0)

网站开发中,文件管理(附件管理)比较繁琐,几个思路:

1、上传了文件,删除的是否一并把文件删除;

2、有些文件不需要本地二次上传,只需要外部地址引用即可;


延伸的问题:

(1)、如果删除记录同时不删除文件,文件会常驻服务器,服务器空间会越来越垃圾占用;

(2)、如果是外部引用地址的文件,是否要加多一个字段标识文件来源?


通常,我的做法是用前缀符,~/表示外部引用的,-/表示本地上传的。上传的文件相对网站目录地址前面加多这个前缀符并存入数据库。


则删除文件的代码为:


        /// <summary>
        /// 
        /// </summary>
        /// <param name="fileName"></param>
        public static void DeleteWebUploadFile(string fileName)
        {
            if (fileName == null || fileName.Length == 0)
            {
                throw new Exception
                    (
                        "fileName == null || fileName.Length == 0"
                    );
            }

            if (!fileName.StartsWith("-/"))
                return;

            if (HttpContext.Current == null)
            {
                throw new Exception
                    (
                        "HttpContext.Current == null"
                    );
            }

            fileName = fileName.Substring(2);

            if (fileName.Length == 0)
            {
                return;
            }

            string fileFullName =
                HttpContext.Current.Request.PhysicalApplicationPath + fileName;

            if (!File.Exists(fileFullName))
                return;

            File.Delete(fileFullName);
        }


标签:删除上传文件    文件删除 

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)