2011-02-23 68 views

回答

0

無法完成 - 要顯示「預覽」,您必須至少暫時將圖像存儲在服務器的某個位置,以便您可以在頁面上生成並呈現<img>標記。

+0

這個解決方案是 – 2011-02-23 21:06:16

+0

@hamed不好 - 你想做的事不能做什麼。 dahmsbrak和我的解決方案都至少與你想要做的近似,儘可能多。 – 2011-03-10 17:19:26

+0

我想要當用戶從FileUpload控件中選擇一個圖像時,圖像已自動預覽在圖像控件中。 – 2011-03-12 19:15:39

1

你可以做的最好的事情就是把它上傳到內存中,不用保存就用.ashx或其他東西顯示它。

編輯

HTML5之前,你也許可以由有一個JavaScript函數,它的上傳文件的目錄,然後設置IMG SRC屬性設置爲文件路徑做到了。該圖像然後將從他們自己的硬盤驅動器加載預覽。在符合HTML5的瀏覽器中,該文件路徑處於隱藏狀態,因此您無法在JavaScript中使用它。這發生在IE8,Chrome等

這是另一種混亂的方式來做到這一點。

首先,創建一個JavaScript函數,該函數將處理onchange事件上的FileUpload控件。當這個事件觸發時,它會回發整個表單。

 function uploadFile() { 
     var value = $("#<%=fuTest.ClientID %>").val(); 
     if (value != '') { 
      $("#form1").submit(); 
     } 
    } 

這裏是上傳控件:現在

<asp:FileUpload runat="server" ID="fuTest" onchange="uploadFile()" /> 

,當有人選擇一個文件,表單發送回來,然後你可以把圖像到存儲在服務器上,並顯示它時,回傳做完了。

+0

它很好,但如何將字節數組(圖像文件)發送到通用處理程序文件(.ashx)? – 2011-02-23 21:04:50

+0

將圖像存儲在緩存對象或會話中,然後傳遞一個密鑰以將其存儲到ashx處理程序。如果您正確設置內容類型,它可以流出圖像。如果要顯示立即預覽,這將不會真正起作用,只會在用戶成功上傳後纔將圖像顯示給用戶,而不會將其存儲在服務器上。 – 2011-02-23 22:11:22

+0

我要顯示立即預覽 – 2011-02-24 08:44:09

0

您可以做到這一點,但您需要使用具有可指定Bitmap屬性的自定義imageControl。下面是描述一個文章:

Egghead Cafe Article