1. 程式人生 > >Fileupload控制元件點選“瀏覽”按鈕,選擇圖片後需要立即顯示所選擇的圖片

Fileupload控制元件點選“瀏覽”按鈕,選擇圖片後需要立即顯示所選擇的圖片

function showimg()
{   
        document.getElementById("<%=Image1.ClientID %>").src=document.getElementById("<%=File1.UniqueID %>").value;

</script>HTML:
<asp:Image ID="Image1" runat="server" Width="150px" Height="200px"></asp:Image>
<input id="File1" style="width: 489px; height: 22px" onfocus="showimg()" type="file"  name="File1" runat="server" />

經過測試,在一些機器上能立即顯示圖片,但有些機器上卻不顯示圖片。我不知道是不是跟瀏覽器的安全設定有關。怎麼解決?

解決方案 »

  1. 問題是家裡是ie6可以的,當公司也是IE6就是顯示不出來。而且我右鍵圖片->屬性,顯示的檔名也是我Fileupload控制元件所選中的圖片名   
  2. <input id="File1" style="width: 489px; height: 22px" onfocus="showimg()" type="file"  name="File1" runat="server" /> 函式用的有問題吧??你第一次獲取焦點時為空,當然無法顯示圖片了   
  3. <script>function PreviewImg(imgFile){        var ext = imgFile.value.toLowerCase().substring(imgFile.value.length-3,imgFile.value.length);    if(ext=="jpg"||ext=="png"||ext=="gif"||ext=="bmp")    {        var newPreview = document.getElementById("newPreview");        newPreview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile.value;           newPreview.style.width = "120px";        newPreview.style.height = "90px";    }}</script><div id="newPreview"></div><input type="file" onchange="PreviewImg(this)" id="upimg" runat="server" />   
  4. <style type="text/css"><!--#newPreview {FILTER: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)}--></style>少了這個css樣式   
  5. 樓上的方法測試成功!不過,我原本之所以放了個asp:Image ,是因為頁面(是編輯頁面)裝載的時候,Image 需要從資料庫讀取一個URL,並顯示。然後使用者可以點選Fileupload控制元件選取其他圖片,按樓上的方法,我這邊實現不是很方便。有方法解決嗎?   
  6. 再加一個div,js函式裡,隱藏掉div就可以了。   
  7. <div id="newPreview"> </div> <div id="oldPreview"> </div> <input type="file" onchange="PreviewImg(this)" id="upimg" runat="server" />   js函式if塊裡增加一句document.getElementById("oldPreview").style.display = "none";應該可以的呢.
複製過來的效果不好:原文地址:http://www.debugease.com/aspdotnet/612817.html 我自己的核心程式碼
<asp:Image ID="Image1" runat="server" Height="181px" Width="221px" 
                        BorderColor="#000001" ImageUrl="~/admin/UserPhoto/201404272323258370.jpg"/>
<div id="newPreview"></div>

<asp:FileUpload ID="FileUpload1" runat="server" onchange="previewPic()" />

css程式碼
  #newPreview {FILTER: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)}
js程式碼
 function previewPic() {
            var filePath = $("#FileUpload1");
            var picPath = $("#Image1");
            //if (!filePath || !filePath.value || !picPath) return;
            var extensionName = /\.jpg$|\.jpeg$|\.png$|\.gif$/i;
            if (extensionName.test(filePath.val())) {
                var newPreview = document.getElementById("newPreview");
                newPreview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = filePath.val();
                newPreview.style.width = "120px";
                newPreview.style.height = "90px";
                $("#Image1").remove();

            }
            else {
                alert("您選擇的似乎不是影象檔案。");
            } 
        }