2012-03-22 63 views
0

我想預覽3張使用FileUpload在同一頁上拍攝的圖像。我還必須顯示3張3張圖像的縮略圖。但問題是它顯示的是第一張圖像9次,即3 * 3。我爲它創建圖像文件夾。其中有我已經運行的代碼: string file,thumbPath;使用fileupload預覽圖像

file = FileUpload1.PostedFile.FileName; 
    thumbPath = ("~/images" + "/" + file); 
    FileUpload1.SaveAs(Server.MapPath("images/") + file); 
    Image1.ImageUrl = thumbPath; 
    Image2.ImageUrl = thumbPath; 
    Image3.ImageUrl = thumbPath; 

    file = FileUpload2.PostedFile.FileName; 
    thumbPath = ("~/images" + "/" + file); 
    FileUpload1.SaveAs(Server.MapPath("images/") + file); 
    Image4.ImageUrl = thumbPath; 
    Image5.ImageUrl = thumbPath; 
    Image6.ImageUrl = thumbPath; 

    file = FileUpload3.PostedFile.FileName; 
    thumbPath = ("~/images" + "/" + file); 
    FileUpload1.SaveAs(Server.MapPath("images/") + file); 
    Image7.ImageUrl = thumbPath; 
    Image8.ImageUrl = thumbPath; 
    Image9.ImageUrl = thumbPath; 

回答

0

您似乎每次都會保存第一張圖片,因此您在每處都能看到該圖片的原因很有意義。這同一條線路發生在你的代碼3次:

FileUpload1.SaveAs(Server.MapPath("images/") + file); 

你可能想改變FileUpload1,讓你也可以使用在你的代碼的第二和第三部分FileUpload2FileUpload3

FileUpload1.SaveAs(Server.MapPath("images/") + file); 
// do something 
FileUpload2.SaveAs(Server.MapPath("images/") + file); 
// do something 
FileUpload3.SaveAs(Server.MapPath("images/") + file); 
// do something 

另外,它似乎是如果用戶選擇上傳多個同名文件,你會覆蓋其中的一些。你應該使用一些獨特的文件名(可能是windows tempfiles)。請勿使用用戶上傳的文件的名稱,或至少不要用於此特定任務。

0

問題在你的代碼在這一行

 FileUpload1.SaveAs(Server.MapPath("images/") + file); 

試試這個

 string file = FileUpload1.PostedFile.FileName; 
     string thumbPath = ("~/images" + "/" + file);    
     FileUpload1.SaveAs(Server.MapPath("~/images/"+ file)); 
     Image1.ImageUrl = thumbPath; 
-1

試試這個下面的代碼爲單一的形象,你可以改變它的多張圖片也:

<html xmlns="http://www.w3.org/1999/xhtml"> 

<head runat="server"> 

    <title>Untitled Page</title> 

    <style type="text/css"> 

     #newPreview 
     { 
      filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale); 

     } 
    </style> 


    <script language="javascript" type="text/javascript"> 

    function PreviewImg(imgFile) 
    { 
     var newPreview = document.getElementById("newPreview"); 
     newPreview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile.value; 

     newPreview.style.width = "80px"; 
     newPreview.style.height = "60px"; 
    } 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 

    <div> 
     preview 
     <asp:FileUpload ID="Fud_Pic" runat="server" 
onchange="PreviewImg(this)" /> 

     <div id="newPreview"> 

     </div> 
    </div> 
    </form> 
</body> 
</html>