问题描述
我想在上传图像后输入图像的新名称,然后按提交,然后将图像更改为新名称并将其保存在项目路径中,请指导我如何编写代码?非常感谢
在此处输入代码
<div class="row">
<div class="col-sm-6">
Image Name: <input type="text" id="name"/>
<input type="file" class="form-control" id="files" name="files">
<input type=submit/>
</div>
</div>
代码:
公共ActionResult UploadFiles(HttpPostedFileBase文件) {
string newFileName = "";
if (files != null)
{
string path = HttpContext.Server.MapPath(@"~/Data/images");
bool exists = Directory.Exists(path);
if (!exists)
Directory.CreateDirectory(path);
string extension = Path.GetExtension(files.FileName);
newFileName = Guid.NewGuid() + extension;
string filePath = Path.Combine(path,newFileName);
files.SaveAs(filePath);
}
return View();
}
解决方法
从视图中将#name值连同参数形式的文件一起传递到控制器方法UploadFiles中。
控制器:
public ActionResult UploadFiles(HttpPostedFileBase files,string newName) {
string newFileName = "";
if (files != null)
{
string path = HttpContext.Server.MapPath(@"~/Data/images");
bool exists = Directory.Exists(path);
if (!exists)
Directory.CreateDirectory(path);
string extension = Path.GetExtension(files.FileName);
newFileName = newName.Trim() + extension; //pass newName here
string filePath = Path.Combine(path,newFileName);
files.SaveAs(filePath);
}
return View();
}
您还可以在文件名中添加当前的Datetime:
newFileName= DateTime.Now.ToString("yyyyMMdd") + "-" + newName.Trim() + extension;