[セットトップ]ASP.NETの中でどのように1つのピクチャーが真実のピクチャーがウィルスのアップロードを防ぐかどうかを検出します

4109 ワード

主にクライアントがアップロードした画像が真実かどうかを判断し、ウイルスの侵入を防ぎ、アップロードしたファイルの安全を保証するために使用されます.
主なコードは次のとおりです.
参照が必要
using System.IO;
public void UploadFile()
{
try
            { 
                HttpPostedFile postfile = Request.Files["file"]; 
                string savepath = Server.MapPath("Image/" + postfile.FileName);
                postfile.SaveAs(savepath); 
                FileStream fs = new FileStream(savepath, FileMode.Open, FileAccess.Read);
                BinaryReader reader = new BinaryReader(fs); 
                string fileClass; 
                byte buffer; 
                byte[] b = new byte[2]; 
                buffer = reader.ReadByte(); 
                b[0] = buffer; 
                fileClass = buffer.ToString(); 
                buffer = reader.ReadByte(); 
                b[1] = buffer; 
                fileClass += buffer.ToString();  
                reader.Close(); 
                fs.Close();
                
                if (fileClass == "255216" || fileClass == "7173" || fileClass == "6677" || fileClass == "13780")
                {
                    //255216 jpg;7173 gif;6677 BMP,13780 PNG;7790 exe,8297 rar 
                    //Response.Write("    "); 
                    //       
                } 
                else
                { 
                    //Response.Write("    "); 
                    File.Delete(savepath); //    
                    return; 
                } 
            } 
            catch (Exception)
            { //Response.Write("    !"); 
                return; 
                throw; 
            }
}

MVCのコードは以下の通りです.ここで私が返したJSONフォーマットは、もちろんContentまたはその他を返すことができます.
/// <summary>
        ///     
        /// </summary>
        /// <param name="userId">    </param>
        /// <returns>Json(-1      ,-2       )</returns>
        [HttpPost] 
        public JsonResult UploadAvatar(string userId)
        {
            //    
            string folderPath = "/upload/avatar/";
            //        
            if (!Directory.Exists(folderPath))
                Directory.CreateDirectory(folderPath);//      
            HttpPostedFileBase uploadFile = Request.Files["avatars"];
            if (uploadFile != null)
            {
                string oriFileName = uploadFile.FileName;//     
                string fileName = userId + "_" + oriFileName;
                uploadFile.SaveAs(Server.MapPath(folderPath + fileName));
                FileStream fs = new FileStream(Server.MapPath(folderPath + fileName), FileMode.Open, FileAccess.Read);
                BinaryReader reader = new BinaryReader(fs);
                string fileClass;
                byte buffer;
                byte[] b = new byte[2];
                buffer = reader.ReadByte();
                b[0] = buffer;
                fileClass = buffer.ToString();
                buffer = reader.ReadByte();
                b[1] = buffer;
                fileClass += buffer.ToString();
                reader.Close();
                fs.Close();
                if (fileClass == "255216" || fileClass == "7173" || fileClass == "6677" || fileClass == "13780")
                {
                    //255216 jpg;7173 gif;6677 BMP,13780 PNG;7790 exe,8297 rar 
                    //Response.Write("    "); 
                    //       
                }
                else
                {
                   
                    //Response.Write("    "); 
                    FileInfo f = new FileInfo(Server.MapPath(folderPath + fileName));
                    f.Delete(); //    
                    return Json(-2, JsonRequestBehavior.AllowGet);
                }
                return Json(Server.HtmlEncode(folderPath + fileName), JsonRequestBehavior.AllowGet);
            }
            return Json(-1, JsonRequestBehavior.AllowGet);

        }