Пример #1
0
        public static bool saveDB(string filename, string oldname, string outfilename, string filedir, string truedir, int filesize, string fcode, int filetype)
        {
            StringBuilder builder = new StringBuilder();

            builder.Append("insert into ov_files (");
            builder.Append("filecode,filename,filesize,outfilename,stat,addip,addtime,adduser,filedir,linkflv,truedir,webserver,filetype,prefilename)");
            builder.Append("values (");
            builder.Append("@filecode,@filename,@filesize,@outfilename,@stat,@addip,getdate(),@adduser,@filedir,@linkflv,@truedir,@webserver,@filetype,@prefilename)");
            builder.Append(";");
            SqlParameter[] cmdParms = new SqlParameter[] { new SqlParameter("@filecode", SqlDbType.NVarChar, 0x10), new SqlParameter("@filename", SqlDbType.NVarChar, 0xff), new SqlParameter("@filesize", SqlDbType.Int), new SqlParameter("@outfilename", SqlDbType.NVarChar, 0xff), new SqlParameter("@stat", SqlDbType.Int), new SqlParameter("@addip", SqlDbType.NVarChar, 50), new SqlParameter("@adduser", SqlDbType.NVarChar, 50), new SqlParameter("@filedir", SqlDbType.NVarChar, 50), new SqlParameter("@linkflv", SqlDbType.Int), new SqlParameter("@truedir", SqlDbType.NVarChar, 50), new SqlParameter("@webserver", SqlDbType.NVarChar, 0xff), new SqlParameter("@filetype", SqlDbType.Int), new SqlParameter("@prefilename", SqlDbType.NVarChar, 0xff) };
            cmdParms[0].Value  = fcode;
            cmdParms[1].Value  = filename;
            cmdParms[2].Value  = filesize;
            cmdParms[3].Value  = outfilename;
            cmdParms[4].Value  = 0;
            cmdParms[5].Value  = func.GetIp();
            cmdParms[6].Value  = pagebase.Get("u");
            cmdParms[7].Value  = filedir;
            cmdParms[8].Value  = 0;
            cmdParms[9].Value  = truedir;
            cmdParms[10].Value = ConfigurationManager.AppSettings["snsurl"].Trim().ToLower() + "sendok&";//转码服务更新路径
            cmdParms[11].Value = filetype;
            cmdParms[12].Value = oldname;
            return(Conn.ExecuteNonQuery(builder.ToString(), cmdParms) == 1);
        }
Пример #2
0
        public static int saveDB3(string filecode, string filename, string filesize, string outfilename, string stat, string addtime, string filedir, string linkflv, string truedir, string webserver, string filetype, string addip, string prefilename)
        {
            StringBuilder builder = new StringBuilder();

            builder.Append("insert into ov_files (");
            builder.Append("filecode,filename,filesize,outfilename,stat,addtime,filedir,linkflv,truedir,webserver,filetype,addip,prefilename)");
            builder.Append("values (");
            builder.AppendFormat("'{0}','{1}',{2},'{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}')", filecode, filename, filesize, outfilename, stat, Convert.ToDateTime(addtime), filedir, linkflv, truedir, webserver, filetype, addip, prefilename);
            builder.Append(";");
            return(Conn.ExecuteNonQuery(builder.ToString()));
        }
Пример #3
0
        /// <summary>
        /// 删除正式视频文件
        /// </summary>
        private void del_file()
        {
            string       str       = pagebase.Get("fcode");
            SqlParameter parameter = Conn.MakeInParam("@fcode", SqlDbType.Char, 0x10, str);

            if (Conn.ExecuteNonQuery("update ov_files set isdel=1 where filecode=@fcode", new SqlParameter[] { parameter }) > 0)
            {
                base.Response.Write("1");
            }
            else if (!Conn.Exists("select * from ov_files where filecode=@fcode", new SqlParameter[] { parameter }))
            {
                base.Response.Write("1");
            }
            else
            {
                base.Response.Write("0");
            }
        }
Пример #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.AddHeader("Access-Control-Allow-Origin", "*");
            List <Dictionary <string, string> > list = new List <Dictionary <string, string> >();
            string action   = Request["action"];   //del  isconvert
            string filecode = Request["filecode"]; //文件filecode    filecode=xxx-xxx-xxx-xxx

            if (action == null || filecode == null)
            {
                Response.Write("非法访问!");
                HttpContext.Current.Response.End();
            }
            string[] codeArr     = filecode.Split(new char[] { '-' }); //切分
            string   inFilecodes = "";

            for (int i = 0; i < codeArr.Length - 1; i++)
            {
                codeArr[i]   = ("'" + codeArr[i] + "'");
                inFilecodes += (codeArr[i] + ",");
            }
            inFilecodes += "'" + codeArr[codeArr.Length - 1] + "'";

            try
            {
                if (action == "isconvert")
                {
                    SqlDataReader dr = Conn.ExecuteReader("select stat,filecode,times,autoimg,flvsize,filetype  from ov_files where filecode in(" + inFilecodes + ")");//查询

                    if (dr.Read())
                    {
                        Dictionary <string, string> dic = new Dictionary <string, string>();//json字典
                        if (dr["stat"].ToString() == "1")
                        {
                            dic.Add("result", "true");
                            dic.Add("filecode", dr["filecode"].ToString());  //filecode
                            dic.Add("times", dr["times"].ToString());
                            dic.Add("autoimg", dr["autoimg"].ToString());
                            dic.Add("flvsize", dr["flvsize"].ToString());
                            dic.Add("filetype", dr["filetype"].ToString());
                        }
                        else if (dr["stat"].ToString() == "0" || dr["stat"].ToString() == "2")
                        {
                            dic.Add("result", "false");
                        }
                        else if (dr["stat"].ToString() == "4")
                        {
                            dic.Add("result", "failure");
                        }
                        list.Add(dic);
                        while (dr.Read())
                        {
                            dic = new Dictionary <string, string>(); //json字典
                            if (dr["stat"].ToString() == "1")        //转换成功
                            {
                                dic.Add("result", "true");
                                dic.Add("filecode", dr["filecode"].ToString());  //filecode
                                dic.Add("times", dr["times"].ToString());
                                dic.Add("autoimg", dr["autoimg"].ToString());
                                dic.Add("flvsize", dr["flvsize"].ToString());
                                dic.Add("filetype", dr["filetype"].ToString());
                            }
                            else if (dr["stat"].ToString() == "0" || dr["stat"].ToString() == "2")
                            {
                                dic.Add("result", "false");
                            }
                            else if (dr["stat"].ToString() == "3")
                            {
                                dic.Add("result", "failure");
                            }
                            list.Add(dic);
                        }
                        //关闭链接,必须手工关闭
                        Conn.CloseConnectionReader();
                        Response.Write(vodfile.JsonStringModule.ToJsonString(list));
                    }
                    else
                    {
                        Conn.CloseConnectionReader();
                        Response.Write("{result:'false',info:'文件不存在'}");
                    }
                }
                //[[add by 境界@20160820:增加接口处理delete file的请求
                else if (action == "delete")
                {
                    string perID = Request["perID"];
                    if (perID != "73d2428effef619d51d8bcca966f7d98")
                    {
                        Response.Write("perID Invalid");
                        //关闭链接,必须手工关闭
                        Conn.CloseConnectionReader();
                    }
                    else
                    {
                        //从数据库的ov_files表中查询filecode对应的记录,记录项需要:filename, filedir , truedir, outfilename.
                        //filename 是上传的源文件,需要删除;outfilename是转码完毕的目标文件,需要删除。还需要删除图标文件。还需要删除云存储上的文件。但此表中没有云存储的路径。
                        SqlDataReader dr            = Conn.ExecuteReader("select filecode,filename,filedir,truedir, outfilename  from ov_files where filecode in(" + inFilecodes + ")");             //查询
                        bool          bDeleted      = false;
                        bool          bFileNotexsit = true;
                        bool          brecodeExsit  = false;
                        if (dr.Read())
                        {
                            bDeleted      = true;
                            bFileNotexsit = false;
                            brecodeExsit  = true;

                            //删除本地文件
                            string strFileDir     = dr["filedir"].ToString();
                            string strSrcFileName = dr["filename"].ToString();
                            string strDstFileName = dr["outfilename"].ToString();
                            string strTrueDir     = dr["truedir"].ToString();
                            //拼接源文件路径
                            string strSrcPathName = strTrueDir + @"tmpfiles\" + strSrcFileName;
                            strSrcPathName = strSrcPathName.Replace(@"\\", @"\");
                            strSrcPathName = strSrcPathName.Replace(@"/", @"\");
                            strSrcPathName = strSrcPathName.Replace(@"\\", @"\");
                            //删除源文件
                            if (System.IO.File.Exists(strSrcPathName))
                            {
                                System.IO.File.Delete(strSrcPathName);
                            }

                            //拼接目标文件路径
                            string strDstPathName = strTrueDir + strFileDir + @"\" + strDstFileName;
                            strDstPathName = strDstPathName.Replace(@"\\", @"\");
                            strDstPathName = strDstPathName.Replace(@"/", @"\");
                            strDstPathName = strDstPathName.Replace(@"\\", @"\");
                            //删除转码目标文件
                            if (System.IO.File.Exists(strDstPathName))
                            {
                                System.IO.File.Delete(strDstPathName);
                            }

                            //删除图标文件
                            string strImgpath = strTrueDir + strFileDir + @"\img\";
                            strImgpath = strImgpath.Replace(@"\\", @"\");
                            strImgpath = strImgpath.Replace(@"/", @"\");
                            strImgpath = strImgpath.Replace(@"\\", @"\");
                            foreach (string FileName in System.IO.Directory.GetFiles(strImgpath, dr["filecode"].ToString() + @"_*.jpg"))
                            {
                                string strFile = System.IO.Path.GetFileName(FileName);
                                if (System.IO.File.Exists(strFile))
                                {
                                    System.IO.File.Delete(strFile);
                                }
                            }


                            while (dr.Read())
                            {
                                //删除本地文件
                                strFileDir     = dr["filedir"].ToString();
                                strSrcFileName = dr["filename"].ToString();
                                strDstFileName = dr["outfilename"].ToString();
                                strTrueDir     = dr["truedir"].ToString();
                                //拼接源文件路径
                                strSrcPathName = strTrueDir + @"tmpfiles\" + strSrcFileName;
                                strSrcPathName = strSrcPathName.Replace(@"\\", @"\");
                                strSrcPathName = strSrcPathName.Replace(@"/", @"\");
                                strSrcPathName = strSrcPathName.Replace(@"\\", @"\");
                                //删除源文件
                                if (System.IO.File.Exists(strSrcPathName))
                                {
                                    System.IO.File.Delete(strSrcPathName);
                                }

                                //拼接目标文件路径
                                strDstPathName = strTrueDir + strFileDir + @"\" + strDstFileName;
                                strDstPathName = strDstPathName.Replace(@"\\", @"\");
                                strDstPathName = strDstPathName.Replace(@"/", @"\");
                                strDstPathName = strDstPathName.Replace(@"\\", @"\");
                                //删除转码目标文件
                                if (System.IO.File.Exists(strDstPathName))
                                {
                                    System.IO.File.Delete(strDstPathName);
                                }

                                //删除图标文件
                                strImgpath = strTrueDir + strFileDir + @"\img\";
                                strImgpath = strImgpath.Replace(@"\\", @"\");
                                strImgpath = strImgpath.Replace(@"/", @"\");
                                strImgpath = strImgpath.Replace(@"\\", @"\");
                                foreach (string FileName in System.IO.Directory.GetFiles(strImgpath, dr["filecode"].ToString() + @"_*.jpg"))
                                {
                                    string strFile = System.IO.Path.GetFileName(FileName);
                                    if (System.IO.File.Exists(strFile))
                                    {
                                        System.IO.File.Delete(strFile);
                                    }
                                }
                            }


                            Response.Write(vodfile.JsonStringModule.ToJsonString(list));
                        }


                        if (brecodeExsit)
                        {
                            //删除数据库记录
                            Conn.ExecuteNonQuery("delete from ov_files where filecode in filecode in(" + inFilecodes + ")");
                        }
                        //回送结果
                        if (bDeleted || bFileNotexsit)
                        {
                            //已经删除,或者文件不存在
                            //回送结果
                            Response.Write("Delete File Done");
                        }
                        //关闭数据库链接,必须手工关闭
                        Conn.CloseConnectionReader();
                    }
                }
                //]]
            }
            catch
            {
                Response.Write("{result:'false',info:'服务调用失败'}");
            }
        }
Пример #5
0
        /// <summary>
        /// 上传完成保存
        /// </summary>
        protected void save_upload()
        {
            UpFiles files;

            files = new UpFiles
            {
                SavePath = "tmpfiles"
            };
            //存储文件
            files.SaveUploadFiles();
            //写入数据库
            if ((files.GetPromptMessage() != null) || (files.listFile.Count == 0))//文件
            {
                base.Response.End();
            }
            else
            {
                try
                {
                    dic = new Dictionary <string, string>();
                    string fileName = files.listFile[0].fileName;
                    int    fileSize = files.listFile[0].fileSize;
                    //文件标题名,不含扩展名
                    string oldname = files.listFile[0].oldname;
                    string ext     = files.listFile[0].fileExt;
                    //文件代码
                    string fcode = func.GetRandomString(0x10).ToLower();
                    //[stat] 0
                    //对外访问路径
                    string filedir = func.GetFlvFolder();
                    //本地文件相对路径
                    string truedir = HttpContext.Current.Server.MapPath(".") + @"\";

                    if (!System.IO.Directory.Exists(@truedir + "tmpfiles\\"))
                    {
                        //目录不存在,建立目录
                        System.IO.Directory.CreateDirectory(@truedir + "tmpfiles\\");
                    }
                    //对外文件名
                    string outfilename = getOutFileName(this.filetype);
                    string webserver   = System.Configuration.ConfigurationManager.AppSettings.Get("webserver").ToString();
                    //string webserver = "";
                    string ischange = System.Configuration.ConfigurationManager.AppSettings.Get("ischange").ToString();
                    dic.Add("filecode", fcode);
                    dic.Add("filename", fileName);
                    dic.Add("filesize", fileSize.ToString());
                    dic.Add("outfilename", outfilename);
                    dic.Add("stat", ischange);
                    dic.Add("addtime", DateTime.Now.ToString());
                    dic.Add("filedir", filedir);
                    dic.Add("linkflv", "0");
                    dic.Add("truedir", truedir.Replace("\\", "\\\\"));
                    dic.Add("webserver", webserver);
                    dic.Add("filetype", "0");
                    dic.Add("prefilename", oldname + ext);
                    dic.Add("addip", func.GetIp());
                    dic.Add("errcount", "0");
                    dic.Add("isdel", "0");
                    StringBuilder builder = new StringBuilder();
                    builder.Append("insert into ov_files (");
                    builder.Append("filecode,filename,filesize,outfilename,stat,addtime,filedir,linkflv,truedir,webserver,filetype,prefilename,addip,errcount,isdel)");
                    builder.Append("values (");
                    builder.AppendFormat("'{0}','{1}',{2},'{3}',{4},'{5}','{6}',{7},'{8}','{9}','{10}','{11}','{12}',{13},{14})", dic["filecode"].ToString(), dic["filename"].ToString(), dic["filesize"].ToString(), dic["outfilename"].ToString(), Convert.ToInt32(dic["stat"].ToString()), Convert.ToDateTime(dic["addtime"].ToString()), dic["filedir"].ToString(), Convert.ToInt32(dic["linkflv"].ToString()), Convert.ToString(dic["truedir"]), dic["webserver"].ToString(), dic["filetype"].ToString(), dic["prefilename"].ToString(), dic["addip"].ToString(), Convert.ToInt32(dic["errcount"]), Convert.ToInt32(dic["isdel"]));
                    builder.Append(";");
                    int result = Conn.ExecuteNonQuery(builder.ToString());
                    if (result > 0)
                    {
                        //获取插入的id  插入md5
                        ///////////////////////////////////////////////////
                        ////查询ID  并且 写入md5
                        //异常暂不处理  失败返回null
                        builder = new StringBuilder();
                        builder.Append("select id from ov_files where filecode='");
                        builder.Append(dic["filecode"]);
                        builder.Append("'");
                        SqlDataReader sdr = Conn.ExecuteReader(builder.ToString());
                        if (sdr.Read())
                        {
                            string id = sdr["id"].ToString();
                            sdr.Close();
                            builder = new StringBuilder();
                            builder.AppendFormat("insert into FileHash(FileHash,VideoFileID) values('{0}','{1}')", this.md5, id);
                            Conn.ExecuteNonQuery(builder.ToString());
                        }
                        ////////////////////////////////////////////////////////
                        HttpContext.Current.Response.Write("{\"status\":\"1\",\"md5\":\"" + md5 + "\",\"filedir\":\"" + filedir + "\",\"outfilename\":\"" + outfilename + "\",\"oldname\":\"" + oldname + ext + "\",\"filcode\":\"" + fcode + "\",\"filename\":\"" + fileName + "\",\"filesize\":\"" + fileSize + "\"}");//成功
                    }
                    else
                    {
                        HttpContext.Current.Response.Write("上传失败");//成功
                    }
                }
                catch (Exception exception)
                {
                    base.Response.Write(exception.ToString());
                }
                base.Response.End();
            }
        }