使用fileupload预览图像

时间:2012-03-22 13:32:46

标签: c# asp.net

我想使用FileUpload预览我在相同页面上拍摄的3张图像。我还要显示每3张图像的3个缩略图。但问题是它显示第一张图像9次,即3 * 3。我为它创建了图像文件夹。我运行的代码是:  字符串文件,thumbPath;

    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;

3 个答案:

答案 0 :(得分: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)。请勿使用用户上传的文件的名称,或至少不使用此特定任务的文件名称。

答案 1 :(得分: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;

答案 2 :(得分:-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>