[セットトップ]ASP.NETの中でどのように1つのピクチャーが真実のピクチャーがウィルスのアップロードを防ぐかどうかを検出します
4109 ワード
主にクライアントがアップロードした画像が真実かどうかを判断し、ウイルスの侵入を防ぎ、アップロードしたファイルの安全を保証するために使用されます.
主なコードは次のとおりです.
参照が必要
MVCのコードは以下の通りです.ここで私が返したJSONフォーマットは、もちろんContentまたはその他を返すことができます.
主なコードは次のとおりです.
参照が必要
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);
}