Проверка содержимого загруженного файла - PullRequest
1 голос
/ 22 апреля 2010

Я использую ASP.NEt MVC. Я хочу загрузить файлы .zip, для которых я использую элемент управления загрузкой входного файла html. Я хочу, чтобы загружались только файлы .zip. Я хочу проверить, что мой .zip содержит только два файла - оба с расширением .txt и один из них с именем «start». Кто-нибудь может подсказать, пожалуйста, как это проверить? Как мы можем гарантировать, что загруженный файл .zip действительно является заархивированной папкой, а не каким-либо другим файлом, имеющим только расширение .zip. мы можем использовать HttpPostedFileBase.ContentType?

спасибо заранее, капс

Ответы [ 2 ]

0 голосов
/ 28 декабря 2012

Вы можете использовать DotNetZip , чтобы определить, является ли файл zip-файлом или нет. И вы можете сделать намного больше с помощью dotnetzip.

Вы можете проверить, как это

[HttpPost]
public ActionResult Index(FormItems item, HttpPostedFileBase files)
{
            //check for zip file
            try
            {
                ZipFile.CheckZip(files.FileName); //just pass the name of the file
            }
            catch
            {
                //not a zip file
            }

}

OR

[HttpPost]
public ActionResult Index(FormItems item, HttpPostedFileBase files)
{
            //check for zip file
            try
            {
                ZipFile.Read(files.InputStream); //read the zip contents by passing the input stream
            }
            catch
            {
                //not a zip file
            }

}

Убедитесь, что вы включили пространство имен using Ionic.Zip; и добавили ссылку на эту dll.

Надеюсь, это поможет

0 голосов
/ 22 апреля 2010

ContentType просто заполняется браузером клиента, поэтому вы не можете доверять ему.Единственный способ - попробовать и проанализировать файл на сервере: используйте что-то вроде SharpZipLib , чтобы открыть файл .zip и убедиться, что в нем два файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...