簡體   English   中英

如何在實際發送到服務器之前顯示正在上載的圖像的預覽

[英]How to show preview of image being uploaded before actually sending it to server

我的aspx頁面中有一個FileUpload控件,我想在回發之前顯示所選的圖像,以便用戶確認要上傳的圖像。

您可以使用此AJAX Control Toolkit控件進行圖像確認。

http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AsyncFileUpload/AsyncFileUpload.aspx

您正在尋找的是需要一個純客戶端解決方案,我認為這是不可能的,因為他們無法訪問文件系統(在正常情況下)。

請注意,使用AJAX需要首先將文件實際發送到服務器。

這可以通過HTML5現在完成,

http://www.html5rocks.com/en/tutorials/file/dndfiles/

選擇上傳后,您想要讀取該文件

readAsBinaryString

然后你需要將該二進制文件轉換為Base64,以便在頁面上顯示它,

http://www.webtoolkit.info/javascript-base64.html

然后你需要把它放在src EG中的img標簽上

<img src="data:{image/mime_type};base64,{base64_binary_data}" width="100" height="100" />

其中{image / mime_type}是圖像的mime類型,他們上傳了EG image / png,image / jpg

並且{base64_binary_data}是通過base64轉換后的readAsBinaryString

通過HTML無法實現。 但有可能使用閃光/銀光。

我之所以這么說,是因為我想在用戶上傳文件之前想知道文件的大小,就會遇到問題。 Html不會讓你知道這一點,用戶必須先上傳整個文件才能說出它有多大。

但是,解決方法是使用閃存,因為閃存似乎有權從本地磁盤中獲取有關文件的數據,然后再將其發送到服務器(當然用戶選擇文件后)。 因為它可以獲取文件名,大小等,所以我想你也可以抓取圖像數據然后顯示它。

你將需要使用閃光燈或silverlight來做到這一點。 這是一篇文章,其中介紹了如何使用Flash: http//blog.flexexamples.com/2008/08/25/previewing-an-image-before-uploading-it-using-the-filereference-class-in -flash玩家-10 /

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM