.net 关于图像上传的几个问题
我需要上传图像到我的网站,使一些图像处理,得到图像大小\分辨率,转换成jpg格式等,然后嵌入到我的网站页面。 我有几个问题: 如何检查上传文件是否为图像? 哪里是更好的存储图像-mssql还是文件夹? 如何检测图像类型。MIME信任源是什么? 如何进行图像处理。系统图是好的仪器吗? 如何检查上传文件是否为图像 您可以查看上传的文件名并使用扩展名,但这不是100%的保证。任何人都可以将.exe重命名为.jpg,因此没有可靠的方法。记住,在服务器上得到的只是一个文件名和一个字节数组,可以是任何东西。另一种技术是查看上传文件的前几个字节,并尝试猜测其类型,但再次无法保证 哪里是更好的存储图像-mssql还是文件夹 没有明确的答案。有些人喜欢文件系统,有些人喜欢SQL。我更喜欢将文件存储在文件系统中,并且只保存SQL中的路径。SQLServer2008还有一个数据类型,可能值得检查 如何检测图像类型。MIME信任源是什么 同样,可以使用文件扩展名,但不是100%可信 如何进行图像处理。系统图是好的仪器吗.net 关于图像上传的几个问题,.net,asp.net,asp.net-mvc,.net,Asp.net,Asp.net Mvc,我需要上传图像到我的网站,使一些图像处理,得到图像大小\分辨率,转换成jpg格式等,然后嵌入到我的网站页面。 我有几个问题: 如何检查上传文件是否为图像? 哪里是更好的存储图像-mssql还是文件夹? 如何检测图像类型。MIME信任源是什么? 如何进行图像处理。系统图是好的仪器吗? 如何检查上传文件是否为图像 您可以查看上传的文件名并使用扩展名,但这不是100%的保证。任何人都可以将.exe重命名为.jpg,因此没有可靠的方法。记住,在服务器上得到的只是一个文件名和一个字节数组,可以是任何东西。
是的,GDI+足以执行基本的图像处理,如调整普通图像类型的大小。1廉价的检测方法是通过扩展。最安全的方法是读取头的前几个字节,看看它是否与已知的图像格式头匹配 2 MSSQL 2008有一个文件流类型,它是两个世界中最好的。如果您使用的是较旧版本的sql server,那么这是一个难题。如果图像必须由多个web服务器访问,并且需要考虑可移植性/备份,那么您必须将其放在数据库服务器中 如果不考虑多个web服务器,但考虑可移植性/备份,则将其存储在NAS上 如果您知道单个web服务器无法扩展,那么本地web服务器上的文件系统就可以了 不要相信任何人。见项目1 4买一个图书馆或找一个开源图书馆。这会让你的生活更轻松。顺便说一句,这有助于第1项和第3项。上载图像时,请将其与库一起打开。如果图书馆抱怨,那么你可以很肯定这不是真实的图像
您可以登录plupload查看他们在做什么:您可以查看我的博客帖子: 使用JavaScript+ASHX处理程序异步上传图像。 用于图像上传ASHX和图像处理的服务器端代码 这将涵盖很多内容,但给你 如何检查是否为图像: 上载时,您可以检查文件扩展名以查看它是什么。上传后,您可以检查文件的mime类型 我喜欢将图像作为二进制文件存储在数据库中。它更易于管理,而且我不需要从web服务器硬盘读取/写入图像 要对图像进行任何修改,请使用System.Drawing