2013-10-30 20 views
0

我用下面的代碼, 的圖片上傳蠻好的圖片上傳到我的網站,但是,我需要怎麼過 解決以下幾件事: - 我得到這樣的Url C:\ Users \ Me \ Documents \ Visual Studio 2013 \ Projects \ Wow \ WowMvc5 \ WowMvc5 \ images \ gallery \ Picture 022.jpg, 而不是相關文件夾Url -I爲了避免錯誤2圖像這個相同的名稱,它會更好地創建一個文件夾下的圖像爲每個圖像(或任何更好的想法) 謝謝你的時間相關的URL上傳

 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

上傳圖片很好,但是您需要爲您的文件夾中的每個圖片提供獨一無二的名稱,每個圖片都創建一個新文件夾,這是不正確的方式 – gauravp

+0

Thanks,can you direct我怎麼樣? –

回答

0

我會做的是使用HashCode命名並保存每張圖片。

根據定義,它是非常可能不可能的是,當使用散列算法進行轉換時,2個不同的字符串將具有相同的輸出。可以肯定的是,在圖像的原始名稱中添加一個隨機字符串。

string newName = (oldName + random).GetHashCode().ToString() 
+0

好的,好的建議我會這麼做的。在Q我最大的問題是關於URL –

+0

謝謝你會這樣做 –

0

filename_1.jpg 其中CNT是增量計數 如果(file.exists() { 串CNT = file.split( 「」); 字符串newFileName =文件名+「」 +(CNT +1)+「。jpg」; }

+0

謝謝,我很抱歉,我真的不明白 –