public void update_folder(ref DbDataReader r, int fd_id)
        {
            uc_folder fd;

            if (!this.folders.TryGetValue(fd_id, out fd))
            {
                fd = new uc_folder();
            }
            this.folders.Remove(fd_id);

            FolderInf fdSvr = new FolderInf();

            fdSvr.filesComplete = r.GetInt32(24);
            fdSvr.filesCount    = r.GetInt32(23);
            fdSvr.foldersCount  = r.GetInt32(22);
            fdSvr.idFile        = r.GetInt32(0);
            fdSvr.idSvr         = r.GetInt32(3);
            fdSvr.lenLoc        = r.GetInt64(9);
            fdSvr.lenSvr        = r.GetInt64(12);
            fdSvr.pathLoc       = r.GetString(20);
            fdSvr.pathSvr       = r.GetString(21);
            fdSvr.size          = r.GetString(18);
            fdSvr.nameLoc       = r.GetString(16);
            fdSvr.perSvr        = r.GetString(13);

            fd.m_fdSvr = fdSvr;
            this.folders.Add(fd_id, fd);
        }
Exemple #2
0
        public static string GetFolderData(int fid, ref FolderInf root)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("select ");
            sb.Append("xf.fd_name");
            sb.Append(",xf.fd_length");
            sb.Append(",xf.fd_size");
            sb.Append(",xf.fd_pid");
            sb.Append(",xf.fd_pathLoc");
            sb.Append(",xf.fd_pathSvr");
            sb.Append(",xf.fd_folders");
            sb.Append(",xf.fd_files");
            sb.Append(",xf.fd_filesComplete");
            sb.Append(" from down_folders as df");
            sb.Append(" left join xdb_files as xf");
            sb.Append(" on xf.fd_id = df.fd_id");
            sb.Append(" where df.fd_id=@fd_id and xf.fd_complete=1;");

            DbHelper  db  = new DbHelper();
            DbCommand cmd = db.GetCommand(sb.ToString());

            db.AddInInt32(cmd, "@fd_id", fid);
            DbDataReader r = db.ExecuteReader(cmd);

            //FolderInf root = new FolderInf();
            if (r.Read())
            {
                root.m_name        = r.GetString(0);
                root.m_lenLoc      = r.GetInt64(1);
                root.m_size        = r.GetString(2);
                root.m_pidSvr      = r.GetInt32(3);
                root.m_idSvr       = fid;
                root.m_pathLoc     = r.GetString(4);
                root.m_pathSvr     = r.GetString(5);
                root.foldersCount  = r.GetInt32(6);
                root.filesCount    = r.GetInt32(7);
                root.filesComplete = r.GetInt32(8);
            }
            r.Close();

            //单独取已上传长度
            root.lenSvr = DBFolder.GetLenPosted(fid);

            //取文件信息
            JArray        files = new JArray();
            List <string> ids   = new List <string>();

            DBFile.GetCompletes(fid, ref files, ref ids);

            JObject obj = (JObject)JToken.FromObject(root);

            obj["files"]  = files;
            obj["length"] = root.m_lenLoc;
            obj["ids"]    = string.Join(",", ids.ToArray());
            return(obj.ToString());
        }
Exemple #3
0
        /// <summary>
        /// 构建存储路径,保留客户端文件名称
        /// 格式:
        ///     upload/uid/folders/uuid/folder_name
        /// </summary>
        /// <param name="uid"></param>
        /// <param name="fd"></param>
        /// <returns></returns>
        public override string genFolder(int uid, ref FolderInf fd)
        {
            var      uuid    = Guid.NewGuid().ToString("N"); // e0a953c3ee6040eaa9fae2b667060e09
            DateTime timeCur = DateTime.Now;
            string   path    = Path.Combine(this.getRoot(), timeCur.ToString("yyyy"));

            path = Path.Combine(path, timeCur.ToString("MM"));
            path = Path.Combine(path, timeCur.ToString("dd"));
            path = Path.Combine(path, uuid);
            path = Path.Combine(path, fd.nameLoc);

            return(path);
        }
Exemple #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string fdID  = Request.QueryString["fdID"];   //xdb_folders.fd_id
            string idSvr = Request.QueryString["idSvr"];
            string cbk   = Request.QueryString["callback"];

            FolderInf fi   = new FolderInf();
            string    json = string.Empty;

            if (!string.IsNullOrEmpty(idSvr))
            {
                json = DnFolder.GetFolderData(int.Parse(idSvr), ref fi);
            }
            else if (!string.IsNullOrEmpty(fdID))
            {
                json = DBFolder.GetFolderData(int.Parse(fdID), ref fi);
            }

            json = HttpUtility.UrlEncode(json);
            //UrlEncode会将空格解析成+号
            json = json.Replace("+", "%20");
            //Response.Write(cbk+"("+json+ ")");
            Response.Write(json);
        }
 public virtual string genFolder(int uid, ref FolderInf fd)
 {
     return(string.Empty);
 }
Exemple #6
0
 /// <summary>
 /// 不创建文件夹,所有文件统一以日期格式存储
 /// </summary>
 /// <param name="uid"></param>
 /// <param name="fd"></param>
 /// <returns></returns>
 public override string genFolder(int uid, ref FolderInf fd)
 {
     return(string.Empty);
 }
 public FolderDbWriter(DbConnection con, FolderInf fd)
 {
     this.con  = con;
     this.root = fd;
 }