文件上传中的相关网址

时间:2013-10-30 09:04:23

标签: asp.net-mvc

我正在使用以下代码将图片上传到我的网站, 图片上传很好,但是,如何 我需要修复以下内容:   - 我得到这种网址 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);
    }

2 个答案:

答案 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”;     }