Exemple #1
0
        private void CheckAndCreateImage(byte[] data, string filename, string groupname, string shortcut, string appointGroupName)
        {
            if (appointGroupName == "Ĭ�Ϸ���")
            {
                appointGroupName = "{default}";
            }
            EmoticonItem emoticon;

            //string postfix = Check.GetFileNamePostfix(filename);
            //bool tempBool = false;
            ////string newFileName;
            //if (postfix == "GIF" || postfix == "JPG")
            //{
            //    if (Check.CheckImage(data))
            //        tempBool = true;
            //}
            //if (tempBool)

            string MD5FileName = MD5.GetMD5(data);

            if (appointGroupName != "")
            {
                groupname = appointGroupName;
            }

            emoticon          = new EmoticonItem();
            emoticon.MD5      = MD5.GetMD5(data);
            emoticon.FileName = filename;
            emoticon.Shortcut = shortcut;
            emoticon.Data     = data;

            if (!emoticons.ContainsKey(groupname))
            {
                emoticons.Add(groupname, new List <EmoticonItem>());
            }

            emoticons[groupname].Add(emoticon);

            this.EmoticonCount++;
            this.TotalEmoticonSize += data.Length;

            if (this.MaxEmoticonSize < data.Length)
            {
                this.MaxEmoticonSize = data.Length;
            }

            // string imagePath = imageRootPath + "\\" + newFileName[0] + "\\" + newFileName[1] + "\\" + newFileName;
            // CreateFile.Create(imagePath, data);

            //��������ͼ
            //ImageHelper.CreateThunmbnailImage(imagePath, EmoticonManager.GetThunmbnailFilePath(newFileName), 24, 24, ImageFormat.Png, true);
            //CreateFile.CreateThunmbnailImage(imagePath, EmoticonManager.ThunmbnailImageRootPath + emoticon.RelativePath,true);
        }
Exemple #2
0
        void Run()                       //List<Emoticon>
        {
            int MD5Length;               //md5���ַ�����ʽ����
            int uintcutLength;           //��ݼ�����
            int FaceNameLength;          //�������Ƴ���
            int FaceFileNameLength;      //�����ļ�������
            int FileLength;              //�����ļ�����
            int ThumbnailFileNameLength; //΢��ͼ�ļ�������
            int ThumbnailFileLength;     //΢��ͼ�ļ�����
            int FrameLength;             //�����ļ�֡��

            this.emoticons.Add(string.Empty, new List <EmoticonItem>());
            this.Items = emoticons[string.Empty];

            EmoticonItem emoticon;

            int index = 0;

            for (; ;)
            {
                emoticon = new EmoticonItem();
                if (index >= data.Length)
                {
                    break;
                }

                MD5Length               = BitConverter.ToInt32(data, index); // GetByte.GetByteToInt(data, index);
                index                  += 4;
                uintcutLength           = BitConverter.ToInt32(data, index); // GetByte.GetByteToInt(data, index);
                index                  += 4;
                FaceNameLength          = BitConverter.ToInt32(data, index); // GetByte.GetByteToInt(data, index);
                index                  += 4;
                FaceFileNameLength      = BitConverter.ToInt32(data, index); // GetByte.GetByteToInt(data, index);
                index                  += 4;
                FileLength              = BitConverter.ToInt32(data, index); // GetByte.GetByteToInt(data, index);
                index                  += 4;
                ThumbnailFileNameLength = BitConverter.ToInt32(data, index); // GetByte.GetByteToInt(data, index);
                index                  += 4;
                ThumbnailFileLength     = BitConverter.ToInt32(data, index); // GetByte.GetByteToInt(data, index);
                index                  += 4;
                FrameLength             = BitConverter.ToInt32(data, index); // GetByte.GetByteToInt(data, index);
                index                  += 4;

                MD5Byte = GetByteArray(data, index, MD5Length); // 32);
                index  += MD5Byte.Length;

                cut    = new byte[uintcutLength];
                cut    = GetByteArray(data, index, uintcutLength);
                index += cut.Length;

                FaceName = new byte[FaceNameLength];
                FaceName = GetByteArray(data, index, FaceNameLength);
                index   += FaceName.Length;

                FaceFileName = new byte[FaceFileNameLength];
                FaceFileName = GetByteArray(data, index, FaceFileNameLength);
                index       += FaceFileName.Length;

                ThumbnailFileName = new byte[ThumbnailFileNameLength];
                ThumbnailFileName = GetByteArray(data, index, ThumbnailFileNameLength);
                index            += ThumbnailFileName.Length;

                file   = new byte[FileLength];
                file   = GetByteArray(data, index, FileLength);
                index += file.Length;

                ThumbnailFile = new byte[ThumbnailFileLength];
                ThumbnailFile = GetByteArray(data, index, ThumbnailFileLength);
                index        += ThumbnailFile.Length;
                string tempFileName = Encoding.Unicode.GetString(FaceFileName);//  Encoding.UTF8.GetString(FaceFileName); //Unicode not is UTF8

                this.TotalEmoticonSize += file.Length;

                if (file.Length > this.MaxEmoticonSize)
                {
                    this.MaxEmoticonSize = file.Length;
                }
                emoticon.MD5      = MD5.GetMD5(file);
                emoticon.FileName = tempFileName;
                emoticon.Shortcut = System.Text.Encoding.UTF8.GetString(cut);
                emoticon.Data     = file;
                this.EmoticonCount++;
                this.Items.Add(emoticon);
            }
        }
Exemple #3
0
        private void CheckAndCreateImage(byte[] data, string filename, string groupname, string shortcut, string appointGroupName)
        {
            if (appointGroupName == "Ĭ�Ϸ���")
                appointGroupName = "{default}";
            EmoticonItem emoticon;

            //string postfix = Check.GetFileNamePostfix(filename);
            //bool tempBool = false;
            ////string newFileName;
            //if (postfix == "GIF" || postfix == "JPG")
            //{
            //    if (Check.CheckImage(data))
            //        tempBool = true;
            //}
            //if (tempBool)
            
                string MD5FileName = MD5.GetMD5(data);

                if (appointGroupName != "")
                    groupname = appointGroupName;

                emoticon = new EmoticonItem();
                emoticon.MD5 = MD5.GetMD5(data);
                emoticon.FileName = filename;
                emoticon.Shortcut = shortcut;
                emoticon.Data = data;

                if (!emoticons.ContainsKey(groupname))
                    emoticons.Add(groupname, new List<EmoticonItem>());

                emoticons[groupname].Add(emoticon);

                this.EmoticonCount++;
                this.TotalEmoticonSize += data.Length;
                
                if (this.MaxEmoticonSize < data.Length) this.MaxEmoticonSize = data.Length;

               // string imagePath = imageRootPath + "\\" + newFileName[0] + "\\" + newFileName[1] + "\\" + newFileName;
               // CreateFile.Create(imagePath, data);

                //��������ͼ
                //ImageHelper.CreateThunmbnailImage(imagePath, EmoticonManager.GetThunmbnailFilePath(newFileName), 24, 24, ImageFormat.Png, true);
                //CreateFile.CreateThunmbnailImage(imagePath, EmoticonManager.ThunmbnailImageRootPath + emoticon.RelativePath,true);
        }
        //protected string MaxFileSize
        //{
        //    get
        //    {
        //        return ConvertUtil.FormatSize(EmoticonBO.Instance.MaxEmticonFileSize(MyUserID));
        //    }
        //}

        private void upload()
        {
            using (ErrorScope es = new ErrorScope())
            {
                int uploadCount = 0, i = 0;
                MessageDisplay msgDisplay = CreateMessageDisplay();
                HttpFileCollection files = Request.Files;
                int fileCount = 0, savedCount = 0;

                if (files.Count > 0)
                {
                    List<EmoticonItem> emoticondDatas = new List<EmoticonItem>();
                    for (int j = 0; j < files.Count; j++)
                    {
                        if (files[j].ContentLength > 0)
                        {
                            uploadCount++;
                            EmoticonItem item = new EmoticonItem();
                            i++;

                            byte[] fileData = new byte[files[j].ContentLength];
                            item.MD5 = IOUtil.GetFileMD5Code(files[j].InputStream);

                            files[j].InputStream.Seek(0, System.IO.SeekOrigin.Begin);
                            files[j].InputStream.Read(fileData, 0, fileData.Length);

                            item.Shortcut = _Request.Get("shortcut" + i, Method.Post);
                        
                            item.Data = fileData;
                            item.FileName = files[j].FileName;
                            emoticondDatas.Add(item);


                        }
                    }

                    if (emoticondDatas.Count > 0)
                    {
                        Dictionary<string, List<EmoticonItem>> groupedDatas = new Dictionary<string, List<EmoticonItem>>();
                        groupedDatas.Add(string.Empty, emoticondDatas);
                        EmoticonBO.Instance.BatchImportEmoticon(MyUserID, Group.GroupID, groupedDatas, out fileCount, out savedCount);
                    }
                }

                if (uploadCount == 0)
                {
                    message = "没有选择文件";
                }
                else if (fileCount == 0)
                {
                    message = "没有有效的表情文件";
                }
                else if (savedCount == 0)
                {
                    if (es.HasUnCatchedError)
                    {
                        es.CatchError<ErrorInfo>(delegate(ErrorInfo error)
                        {
                            message += error.Message;
                        });
                    }
                    else
                    {
                        message = "没有保存任何文件, 可能的原因:文件类型不正确, 或者文件大小超出限制!";
                    }
                }
                else
                {
                    string msg = string.Empty;
                    if (es.HasUnCatchedError)
                    {
                        es.CatchError<ErrorInfo>(delegate(ErrorInfo error)
                        {
                            message += "<br />" + error.Message;
                        });
                    }


                    message = uploadCount == savedCount ? "文件全部保存成功" : "共上传" + uploadCount + "个文件, 成功保存了" + savedCount + "个文件。" + msg;

                    if (!es.HasUnCatchedError)
                        state = 2;
                    else
                        state = 1;
                }
            }
        }
Exemple #5
0
        void Run()//List<Emoticon>
        {
            int MD5Length;                  //md5���ַ�����ʽ����
            int uintcutLength;              //��ݼ�����
            int FaceNameLength;             //�������Ƴ���
            int FaceFileNameLength;         //�����ļ�������
            int FileLength;                 //�����ļ�����
            int ThumbnailFileNameLength;    //΢��ͼ�ļ�������
            int ThumbnailFileLength;        //΢��ͼ�ļ�����
            int FrameLength;                //�����ļ�֡��

            this.emoticons.Add(string.Empty, new List<EmoticonItem>());
            this.Items = emoticons[string.Empty];

            EmoticonItem emoticon;

            int index = 0;
            for (; ; )
            {
                emoticon = new EmoticonItem();
                if (index >= data.Length)
                    break;

                MD5Length = BitConverter.ToInt32(data, index);// GetByte.GetByteToInt(data, index);
                index += 4;
                uintcutLength = BitConverter.ToInt32(data, index);// GetByte.GetByteToInt(data, index);
                index += 4;
                FaceNameLength = BitConverter.ToInt32(data, index);// GetByte.GetByteToInt(data, index);
                index += 4;
                FaceFileNameLength = BitConverter.ToInt32(data, index);// GetByte.GetByteToInt(data, index);
                index += 4;
                FileLength = BitConverter.ToInt32(data, index);// GetByte.GetByteToInt(data, index);
                index += 4;
                ThumbnailFileNameLength = BitConverter.ToInt32(data, index);// GetByte.GetByteToInt(data, index);
                index += 4;
                ThumbnailFileLength = BitConverter.ToInt32(data, index);// GetByte.GetByteToInt(data, index);
                index += 4;
                FrameLength = BitConverter.ToInt32(data, index);// GetByte.GetByteToInt(data, index);
                index += 4;

                MD5Byte = GetByteArray(data, index, MD5Length); // 32);
                index += MD5Byte.Length;

                cut = new byte[uintcutLength];
                cut = GetByteArray(data, index, uintcutLength);
                index += cut.Length;

                FaceName = new byte[FaceNameLength];
                FaceName = GetByteArray(data, index, FaceNameLength);
                index += FaceName.Length;

                FaceFileName = new byte[FaceFileNameLength];
                FaceFileName = GetByteArray(data, index, FaceFileNameLength);
                index += FaceFileName.Length;

                ThumbnailFileName = new byte[ThumbnailFileNameLength];
                ThumbnailFileName = GetByteArray(data, index, ThumbnailFileNameLength);
                index += ThumbnailFileName.Length;

                file = new byte[FileLength];
                file = GetByteArray(data, index, FileLength);
                index += file.Length;

                ThumbnailFile = new byte[ThumbnailFileLength];
                ThumbnailFile = GetByteArray(data, index, ThumbnailFileLength);
                index += ThumbnailFile.Length;
                string tempFileName = Encoding.Unicode.GetString(FaceFileName);//  Encoding.UTF8.GetString(FaceFileName); //Unicode not is UTF8

                this.TotalEmoticonSize += file.Length;

                if (file.Length > this.MaxEmoticonSize)
                    this.MaxEmoticonSize = file.Length;
                emoticon.MD5 = MD5.GetMD5(file) ;
                emoticon.FileName =  tempFileName;
                emoticon.Shortcut = System.Text.Encoding.UTF8.GetString(cut);
                emoticon.Data = file;
                this.EmoticonCount++;
                this.Items.Add(emoticon);
            }
        }