为什么ASP.NET MVC在项目中不包含图片上传文件夹?

时间:2020-04-08 13:02:35

标签: asp.net-mvc

我发现我的应用程序上载的图像未包含在项目中,并且我必须逐个图像地手动包含它们,因此,asp.net mvc项目将上载的图像正确放置的正确方法是什么?包括在项目中。

以下代码是将图像上传到文件夹并为每个图像创建唯一名称的代码。但这些图像仍未包含在项目浏览器中。

public ActionResult Create(Job job, HttpPostedFileBase JobImage)
{
    var value = "999999999";
    var result4 = from app in db.Job where app.UniqueJobImageName.Contains(value) select app;
    if(result4.FirstOrDefault() != null)
    {
        value = generateRandom();
    }
    if (ModelState.IsValid && CheckFileType(JobImage.FileName))
    {
        string ext = Path.GetExtension(JobImage.FileName);
        var fileName = Path.GetFileName(JobImage.FileName);
        job.JobImage = JobImage.FileName;
        job.UniqueJobImageName = value + ext;
        var path = Path.Combine(Server.MapPath("~/Images"), value +  ext);
        JobImage.SaveAs(path);
        job.UserId = User.Identity.GetUserId();
        job.jobUrl = "";
        job.Month = DateTime.Now.ToString("MMMM");
        job.DateAndTime = DateTime.Now;
        AllJobModel all = new AllJobModel
        {
            JobTitle = job.JobTitle,
            JobDescription = job.JobDescription,
            JobImage = job.JobImage,
            UniqueJobImageName = job.UniqueJobImageName,
            locationName = job.locationName,
            minimumSalary = job.minimumSalary.ToString(),
            maximumSalary = job.maximumSalary.ToString(),
            jobUrl = job.jobUrl,
            PostedDate = DateTime.Now.ToString("dd/MM/yyyy"),
            UserId= User.Identity.GetUserId(),
        };

        db.AllJobModel.Add(all);
        db.SaveChanges();
        db.Job.Add(job);
        db.SaveChanges();
        return RedirectToAction("Index","Home");
    }else if (!CheckFileType(JobImage.FileName))
    {

    }

    return View(job);
}

enter image description here

1 个答案:

答案 0 :(得分:1)

这没有任何意义。上载的图像是用户创建的内容。它们不是站点的可部署组件(或者无论如何都不应该)。它们是用户生成的内容,而不是开发人员资源。

如果您希望有效地将数据(即,将数据库条目和其他用户生成的内容(例如图像文件)复制)从一种环境迁移到另一种环境,那么这是一项单独的任务,您可以为此创建单独的过程和/或自动脚本。请勿将其与上传应用程序代码的新版本相混淆。


P.S。即使您要的目标是一个明智的目标,也还是不可能的-代码的可执行版本与您在Visual Studio项目中看到的代码不同。在现代的ASP.NET应用程序中,可执行代码位于不同的文件夹中(即使当您在Visual Studio中以调试模式运行时),也不了解对其进行编译的原始项目或在哪里找到它的概念或知识。 ,或如何与之互动。

相关问题