2012-01-11 59 views
0

之前被上传我有我的aspx页面一个FileUpload控件,我想,这样用户确认上传的图片显示回发之前选择的图像。如何显示图像的预览实际上把它发送到服务器

+0

如果这是有可能通过纯HTML后,然后你在很多天之前就会在社交网站上看到这个功能。在拍摄图像预览之前需要发布数据。 – Acn 2012-01-11 06:48:35

+0

它可能*可能与HTML5,虽然...我在想gmail文件下拉区的东西像 – 2012-01-11 06:52:45

+0

可能重复[如何预览图像,然后将其上传到服务器?](http://堆栈溢出。com/questions/7242473 /如何预览图像之前上传它到服务器) – V4Vendetta 2012-01-11 06:53:07

回答

1

您可以使用此AJAX控件工具包控件进行图像确认。

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

+0

好,但它不显示图像,它只上传 – Mubarek 2012-01-11 07:11:08

+0

您可以将图像存储在温度目录并将其显示在标记中。如果用户重新上传图片,您必须删除该图片并存储新图片并在标签中显示。都包含在更新面板中。 – 2012-01-11 07:14:31

+0

感谢这个想法看起来很有希望,我的投票 – Mubarek 2012-01-11 07:19:03

1

你在找什么需要一个纯客户端解决方案,我不认为这是可能的,因为他们没有访问文件系统(正常情况下)。

注意,使用AJAX需要文件实际发送到服务器第一。

0

这不可能通过HTML。但可能使用flash/silverlight。

我这样说是因为我记得跨过一个问题来了,当我想起来前一个文件有多大,用户上传之前知道。 Html并不能让你知道这一点,用户必须先上传整个文件,然后才能说它有多大。

然而,解决方法是使用闪光灯,因为闪光灯似乎有权限把它发送到服务器(用户选择过程中的文件之后)抢到从本地磁盘上的文件数据。由于它可以抓取文件名,大小等,我想你可以抓取图像数据,然后显示它。

+0

请你给我提示从哪里开始,我不知道如何使用闪光灯 – Mubarek 2012-01-11 07:46:05

+0

linkerro提供了一个很好的链接,这是我在快速谷歌搜索后发现的。如果你能够做到这一点,它会很好地运行。 – Chaos 2012-01-11 09:22:08

1

这可以通过HTML5来实现,现在当上传选择你想阅读与

文件,

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

readAsBinaryString

那么你就需要二进制转向Base64编码,所以你可以在网页上显示,

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

然后你需要把它放到一个img标签上的SRC EG

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

凡{图像/ MIME_TYPE}是他们上传EG图像的MIME类型图像/ PNG,图片/ JPG

而且{} base64_binary_data是readAsBinaryString就不见了虽然base64相互转换