Ejemplo n.º 1
0
        public string GetFileUrl(string fileKey, params object[] param)
        {
            //         0   1   2  3    4
            // case 1: 2-2011-04-26-adf96d2c6be8dfade2a049f1ee4b8d7d.jpg
            // case 2: 2-2011-04-26-adf96d2c6be8dfade2a049f1ee4b8d7d-100_1000.jpg

            //兼容以前的数据,如果是 以 / 及 http://开头的 直接返回数据
            if (!string.IsNullOrWhiteSpace(fileKey))
            {
                if (fileKey.StartsWith("/") || fileKey.ToLower().StartsWith("http://"))
                {
                    return(fileKey);
                }

                string[] parts = SplitFileKey(fileKey);
                if (parts == null || parts.Length < 5)
                {
                    return(fileKey);
                }



                string paramInfo = "";
                foreach (var par in param)
                {
                    paramInfo += par.ToString();
                }

                parts[4] += paramInfo;

                Server server = HashFileServer.GetServer(int.Parse(parts[0]));

                string url = server.serverurl;

                string suburl = @"/" + parts[1] + @"/" + parts[2] + @"/" + parts[3] + @"/" + GetUploadPath(parts[4]) +
                                @"/" + parts[4] + Path.GetExtension(fileKey);
                return(url + suburl);
            }
            else
            {
                return("");
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 取得文件的绝对位置信息
        /// </summary>
        /// <param name="fileKey"></param>
        /// <param name="param"></param>
        /// <returns></returns>
        public FileSaveInfo GetFileSavePath(string fileKey, params object[] param)
        {
            //         0   1   2  3    4
            // case 1: 2-2011-04-26-adf96d2c6be8dfade2a049f1ee4b8d7d.jpg
            // case 2: 2-2011-04-26-adf96d2c6be8dfade2a049f1ee4b8d7d-100_1000.jpg

            //兼容以前的数据,如果是 以 / 及 http://开头的 直接返回数据
            if (string.IsNullOrEmpty(fileKey))
            {
                throw new Exception("Error fileKey");
            }

            if (fileKey.StartsWith("/") || fileKey.ToLower().StartsWith("http://"))
            {
                throw new Exception("Error fileKey,Please Use FileKey");
            }

            string[] parts = SplitFileKey(fileKey);
            if (parts == null)
            {
                return(null);
            }

            Server server = HashFileServer.GetServer(int.Parse(parts[0]));

            string paramInfo = "";

            foreach (var par in param)
            {
                paramInfo += par.ToString();
            }

            parts[4] += paramInfo;

            return(new FileSaveInfo
            {
                FileServer = server,
                Dirname = @"" + parts[1] + @"/" + parts[2] + @"/" + parts[3] + @"/" + GetUploadPath(parts[4]),
                Extname = Path.GetExtension(fileKey),
                Savefilename = parts[4] + Path.GetExtension(fileKey)
            });
        }
Ejemplo n.º 3
0
        public string CreateFileKey(string fileName, params object[] param)
        {
            string   unqid = Security.GetMD5(Guid.NewGuid().ToString());
            DateTime now   = DateTime.Now;
            //var dirname = HashPath.DatePath(now) + @"\" + HashPath.GetUploadPath(unqid);
            string extname = Path.GetExtension(fileName);

            string paramInfo = "";

            foreach (var par in param)
            {
                paramInfo += par.ToString();
            }

            string savefilename = unqid + paramInfo + extname;

            Server server = HashFileServer.HashConfig(unqid);

            return(server.id + "-" + now.ToString("yyyy-MM-dd") + "-" + savefilename);
        }