我发现我的应用程序上载的图像未包含在项目中,并且我必须逐个图像地手动包含它们,因此,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);
}
答案 0 :(得分:1)
这没有任何意义。上载的图像是用户创建的内容。它们不是站点的可部署组件(或者无论如何都不应该)。它们是用户生成的内容,而不是开发人员资源。
如果您希望有效地将数据(即,将数据库条目和其他用户生成的内容(例如图像文件)复制)从一种环境迁移到另一种环境,那么这是一项单独的任务,您可以为此创建单独的过程和/或自动脚本。请勿将其与上传应用程序代码的新版本相混淆。
P.S。即使您要的目标是一个明智的目标,也还是不可能的-代码的可执行版本与您在Visual Studio项目中看到的代码不同。在现代的ASP.NET应用程序中,可执行代码位于不同的文件夹中(即使当您在Visual Studio中以调试模式运行时),也不了解对其进行编译的原始项目或在哪里找到它的概念或知识。 ,或如何与之互动。