2014-01-13 80 views
0

我正在創建一個應用程序,當我單擊按鈕並瀏覽對話框時將顯示圖像。使用asp按鈕調用fileUpload控件

這是我的樣本佈局,代碼:

+---------------------------------------------------+ 
|             | 
|             | 
|             | 
|   CLICK HERE TO INSERT IMAGE    | 
|             | 
|             | 
|             | 
+---------------------------------------------------+ 

<asp:Panel ID="Panel2" runat="server" cssClass="containment-wrapper" style="border:1px solid #000000;"> 
      <asp:FileUpload ID="FileUpload1" runat="server" style="display:none;"/> 
      <asp:ImageButton ID="MainImage" runat="server" CssClass="mainImage" ImageUrl="~/Image/ClickHere.png" OnClick="MainImage_Click"/> 
</asp:Panel> 

和我的cs文件

protected void Page_Load(object sender, EventArgs e) 
    { 
     MainImage.Attributes.Add("onclick", "document.getElementById('" + FileUpload1.ClientID + "').click();"); 

    } 
    protected void MainImage_Click(object sender, ImageClickEventArgs e) 
    { 

    } 

我可以單擊「單擊此處插入圖片」,並顯示文件對話框,但我問題是如何獲取選定的圖像並將其顯示在buttonImage上。

+0

你的意思是 - 顯示*上傳到服務器之前,ImageButton *上的選定圖像? – sh1rts

+0

不是。就在我點擊「單擊此處插入圖像」後,瀏覽圖像並將其顯示在ImageButton上。 – coderush

回答

1

,那麼你需要使用文件上傳的PostedFile.SaveAs功能將圖片上傳到您的網站的一個命名的文件夾,並設置ImageButton的適當的ImageUrl屬性: -

FileUpload1.PostedFile.SaveAs(HttpContext.Current.Server.MapPath("~/upload/image.jpg")); 

確保用戶的應用池下運行已經寫權限,這個文件夾(上傳在上面的例子中)

編輯: -

如果你不想保存圖像,你的任務是困難,但可以通過以下方式解決: -

  1. 存放PostedFile的的InputStream會話變量
  2. 創建的HttpHandler的而不是圖像URL返回此流
  3. 點你的ImageButton的IMAGEURL一個HttpHandler
+0

如果我不想保存在我的文件夾中僅用於預覽目的,該怎麼辦? – coderush

相關問題