我正在使用以下代码将图片上传到我的网站, 图片上传很好,但是,如何 我需要修复以下内容: - 我得到这种网址 C:\ Users \ Me \ Documents \ Visual Studio 2013 \ Projects \ Wow \ WowMvc5 \ WowMvc5 \ images \ gallery \ Picture 022.jpg, 而不是相关的文件夹Url - 我为了避免2个图像的错误这个相同的名称,最好在每个图像的图像下创建一个文件夹(或任何更好的主意) 谢谢你的时间
public async Task<ActionResult> Create([Bind(Include = "TakeAwayId,TakeAwayName,description,Price,DishUrl,quantity,DishesAmount,GenreId")] TakeAway takeaway)
{
var path = Server.MapPath("~/Images/gallery/");
foreach (string item in Request.Files)
{
HttpPostedFileBase file = Request.Files[item];
if (file.ContentLength == 0)
{
continue;
}
string SavedFileName = System.IO.Path.GetFileName(file.FileName);
SavedFileName = Server.MapPath
("~" + "/images/gallery/" + SavedFileName);
file.SaveAs(SavedFileName);
takeaway.DishUrl = SavedFileName;
}
if (ModelState.IsValid)
{
db.takeaway.Add(takeaway);
await db.SaveChangesAsync();
return RedirectToAction("Index");
}
ViewBag.GenreId = new SelectList(db.genre, "GenreId", "GenreName", takeaway.GenreId);
return View(takeaway);
}
答案 0 :(得分:0)
我要做的是使用 HashCode 命名并保存每张图片。
根据定义,当使用散列算法转换时,2个不同的字符串具有相同的输出,这是非常不可能的。为了确保,将随机字符串添加到图像的原始名称。
string newName = (oldName + random).GetHashCode().ToString()
答案 1 :(得分:0)
filename_1.jpg 其中cnt是增量计数 如果(file.exists() { string cnt = file.split(“”); 字符串newFileName = filename +“”+(cnt + 1)+“。jpg”; }