Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用MVC将文件发送到VirusTotal_C#_Asp.net Mvc_Virus Scanning - Fatal编程技术网

C# 使用MVC将文件发送到VirusTotal

C# 使用MVC将文件发送到VirusTotal,c#,asp.net-mvc,virus-scanning,C#,Asp.net Mvc,Virus Scanning,我是一名学生,正在尝试另一个迷你项目,用户可以将CSV文件上传到web服务器。但在创建另一个程序来执行该文件之前,我想将该文件发送给virustotal,让它检查病毒 我尝试过,但出现了一个错误:“无法从'string'转换为'System.IO.FileInfo'” 这是我的密码: 控制器 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.M

我是一名学生,正在尝试另一个迷你项目,用户可以将CSV文件上传到web服务器。但在创建另一个程序来执行该文件之前,我想将该文件发送给virustotal,让它检查病毒

我尝试过,但出现了一个错误:“无法从'string'转换为'System.IO.FileInfo'”

这是我的密码:

控制器

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using VirusTotalNET;

namespace Testing_1.Controllers
{
public class HomeController : Controller
{
    // GET: Home
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult Upload(HttpPostedFileBase file)
    {
        string filename = file.FileName;
        VirusTotal vtObj = new VirusTotal("%API KEY%");
        string resID = vtObj.ScanFile(file.FileName);
        string path = Server.MapPath("~/CSV/" + file.FileName);
        file.SaveAs(path);
        ViewBag.Path = path;
        return View();
    }
  }
}
我在这一行得到了错误:stringresid=vtObj.ScanFile(file.FileName)

索引

@{
ViewBag.Title = "Index";
}

<h2>Index</h2>

@using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype =   "multipart/form-data" }))
{
<input type="file" name="File" id="file"/>
<input type="submit" value="Upload" />
}
@{
ViewBag.Title=“Index”;
}
指数
@使用(Html.BeginForm(“Upload”、“Home”、FormMethod.Post、new{enctype=“multipart/formdata”}))
{
}
上传

@{
ViewBag.Title = "Upload";
}

<h2>Uploaded: @ViewBag.Path</h2>
@{
ViewBag.Title=“上传”;
}
上传:@ViewBag.Path

请帮助我,谢谢你

如果我没有错,你是从你的代码中使用这个库的

然后,如果查看他们的文档,您可能会注意到ScanFile方法需要FileInfo类型的对象,并返回ScanResults类型的对象。所以这里不以任何方式包括字符串

因此,您需要将文件保存在文件系统中的某个位置,然后创建FileInfo对象

public ActionResult Upload(HttpPostedFileBase file)
{
    string filename = Server.MapPath("~/CSV/" + file.FileName);
    file.SaveAs(filename);
    FileInfo fi = new FileInfo(filename);
    VirusTotal vtObj = new VirusTotal("%API KEY%");
    ScanResults result = vtObj.ScanFile(fi);
    .. ??? what to do if this is a virus ????
    ViewBag.Path = filename;
    return View();
}

现在,这可能会对服务器上运行的任何防病毒程序造成问题。在运行VirusTotal扫描之前保存它可能会触发已安装的防病毒软件的操作。因此,您可能应该将一个临时文件夹排除在防病毒配置之外,将文件保存在那里,然后(成功扫描后)将文件移动到正确的目标文件夹(或在出现问题时从临时文件夹中删除该文件)。

如果我是正确的,您正在使用代码中的此库

然后,如果查看他们的文档,您可能会注意到ScanFile方法需要FileInfo类型的对象,并返回ScanResults类型的对象。所以这里不以任何方式包括字符串

因此,您需要将文件保存在文件系统中的某个位置,然后创建FileInfo对象

public ActionResult Upload(HttpPostedFileBase file)
{
    string filename = Server.MapPath("~/CSV/" + file.FileName);
    file.SaveAs(filename);
    FileInfo fi = new FileInfo(filename);
    VirusTotal vtObj = new VirusTotal("%API KEY%");
    ScanResults result = vtObj.ScanFile(fi);
    .. ??? what to do if this is a virus ????
    ViewBag.Path = filename;
    return View();
}

现在,这可能会对服务器上运行的任何防病毒程序造成问题。在运行VirusTotal扫描之前保存它可能会触发已安装的防病毒软件的操作。因此,您可能应该将一个临时文件夹排除在防病毒配置之外,将文件保存在那里,然后(成功扫描后)将文件移动到正确的目标文件夹(或者在出现问题时,从临时文件夹中删除该文件).

我认为您需要查看的文档和api以在迷你项目中实现上载功能。

我认为您需要查看的文档和api以在迷你项目中实现上载功能。

您需要先保存文件,然后创建一个
FileInfo
对象(
FileInfo FileInfo=new FileInfo)(pathToSavedFile);
然后将
fileInfo
传递给
ScanFile()
方法。您需要先保存文件,然后创建
fileInfo
对象(
fileInfo fileInfo=newfileinfo(pathToSavedFile);
然后将
fileInfo
传递给
ScanFile()
method。是的,我在开始之前就这样做了。因为.NET是Virustotalys的第三方,所以我在开始之前就这样做了。因为.NET是Virustotaly的第三方,所以我还没有想到这一点。我正在为一个安全模块做这个项目。我仍然不知道如何将保存的文件移动到另一个文件夹。但我在implement中遇到了另一个错误ing virustotal。我还没有想到那么远。我正在为一个安全模块做这个项目。我仍然不知道如何将保存的文件移动到另一个文件夹。但是我在实现virustotal时遇到了另一个错误。