如何在将图像保存到数据库之前验证图像大小和尺寸
我正在使用 ASP.NET C# 4.0,我的 Web 表单包含用于上传图像的输入类型文件。
我需要在客户端验证图像,然后将其保存到我的 SQL 数据库,
因为我使用输入类型=文件上传图像,我不想回发页面以验证图像大小、尺寸。
需要您的帮助 谢谢
I am using ASP.NET C# 4.0, my web form consist of input type file to upload images.
i need to validate the image on client side, before saving it to my SQL database
since i am using input type= file to upload images, i do not want to post back the page for validating the image size, dimensions.
Needs your assistance
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你可以做这样的事情...
你可以在支持新的 File API< 的浏览器上执行此操作/a> 来自 W3C,使用
readAsDataURL
< /a> 上的函数FileReader
接口,并将数据 URL 分配给img
的src
(之后您可以读取height
和图像的宽度
)。目前 Firefox 3.6 支持 File API,我认为 Chrome 和 Safari 已经或即将支持。因此,过渡阶段的逻辑将是这样的:
检测浏览器是否支持 File API(这很简单:
if (typeof window.FileReader === 'function')
) .如果是,那就太好了,在本地读取数据并将其插入到图像中以查找尺寸。
如果没有,请将文件上传到服务器(可能从 iframe 提交表单以避免离开页面),然后轮询服务器询问图像有多大(或者只是询问上传的图像,如果您愿意) )。
编辑 一段时间以来,我一直想编写一个文件 API 的示例;这里有一个:
在 Firefox 3.6 上运行良好。我避免使用那里的任何库,因此对属性(DOM0)样式事件处理程序等表示歉意。
you can do something like this...
You can do this on browsers that support the new File API from the W3C, using the
readAsDataURL
function on theFileReader
interface and assigning the data URL to thesrc
of animg
(after which you can read theheight
andwidth
of the image). Currently Firefox 3.6 supports the File API, and I think Chrome and Safari either already do or are about to.So your logic during the transitional phase would be something like this:
Detect whether the browser supports the File API (which is easy:
if (typeof window.FileReader === 'function')
).If it does, great, read the data locally and insert it in an image to find the dimensions.
If not, upload the file to the server (probably submitting the form from an iframe to avoid leaving the page), and then poll the server asking how big the image is (or just asking for the uploaded image, if you prefer).
Edit I've been meaning to work up an example of the File API for some time; here's one:
Works great on Firefox 3.6. I avoided using any library there, so apologies for the attribute (DOM0) style event handlers and such.