在上传目录中创建文件夹以保存图像
本文关键字:文件夹 保存 图像 创建 | 更新日期: 2023-09-27 18:17:06
我有一个controller method
,可以很好地在Uploads
文件夹中上传图像。我尝试在其中创建一个日期文件夹,这样我就可以将图像分组在相关的日期文件夹中。但Directory.CreateDirectory()
不是在我现有的Uploads
文件夹中创建一个文件夹。我在SaveAs()
方法上得到一个异常
can't find the directory: MyApp/Uploads/10-11-2015
我的动作方法
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(ProductViewModel productViewModel)
{
var ValidImageTypes = new string[]{
"image/gif",
"image/jpeg",
"image/jpg",
"image/png"
};
if(!ValidImageTypes.Contains(productViewModel.ImageUpload.ContentType))
{
ModelState.AddModelError("ImageUpload", "Please upload gif / jpg / png");
}
if (ModelState.IsValid)
{
var product = new Products
{
Name = productViewModel.Name
};
var UploadDir = "/Uploads/" + DateTime.Now.ToString("dd/MM/yyyy") + "";
var FolderUploadDir = DateTime.Now.ToString("dd/MM/yyyy");
Directory.CreateDirectory("~/Uploads/" + FolderUploadDir);
//Saving the image
productViewModel.ImageUpload.SaveAs(ImagePath);
return View("Index");
}
文件/文件夹名称dd/MM/yyyy
使用的日期格式字符串无效。文件/文件夹名称中不允许使用字符" / "
。您可以使用dd-MM-yyyy代替
我自己弄清楚了,我需要为CreateDirectory()
方法提供服务器的正确路径。下面的代码达到了这个目的
var FolderUploadDir = Server.MapPath("~/Uploads/"+DateTime.Now.ToString("dd-MM-yyyy"));
Directory.CreateDirectory(FolderUploadDir);
尝试在目录地址中使用''而不是/