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(""); } }
/// <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) }); }
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); }