现在有一个项目,要求用户能将图片上传到相册中,然后在相册中能浏览。
以前客户的需求是图片不能超过1M,所以现在能完全实现该功能,但近日客户要求能上传最大25M的图片。
目前小图片的处理方法是:
利用html的file控件上传图片,将图片保存至Sql server数据库(因为要实现load balance,所以必须写进数据库)。客户端要浏览的时候,通过image.aspx?ImageID = %GUIDofimage%&Height=%Height%&Width=%width%的方式来访问,其中在image.aspx的后来代码中,对图片进行了处理,既:如果图片本身是800 * 600, 但实际显示为400 * 300,则在服务端会对图片进行压缩,然后将生成的小图片显示到客户端。
但是针对25M的大图片,我想这种实现方式有几个问题:
1.通过file控件上传速度会非常慢,我们想用AspnetUpload控件,不知道这个控件怎么样?有没有更好的控件呢?
2.在服务器端对图片进行处理时,目前的代码是将数据库中的内容取出,写入stream中,然后构造内存中的image对象,这个过程一方面要占用大量内容,一方面速度会不会很慢呢?不知道有什么好的解决方法呢?谢谢大家!

解决方案 »

  1.   

    1.aspnetUpload没用过,是activx控件吗?2.文件太大了最好不要保存到数据库直接放在服务器上就可以了。如果有安全性问题,可将文件放到非web目录下,下载时候根据权限去读。
      

  2.   

    to cpp2017(幕白兄):
    1. AspnetUpload应该是.net的用户控件吧,具体的我没试过,但肯定不是ActiveX控件。
    2. 因为要实现load balance(就是多台服务器,一个数据库服务器),session、图片等只能放到数据库中。
      

  3.   

    请问有没有现成的类可以优化对大图片的reformat和resize呢?
      

  4.   

    我的電腦是繁體版本的
    在MSDN2003
    可以找到ISAPI Extensions: Creating a DLL to Enable HTTP-based File Uploads with IIS
    ms-help://MS.MSDNQTR.2003FEB.1028/dnmag01/html/Upload.htm如果找不到可以打開我的BLOG
    http://blog.csdn.net/kaixin110/archive/2006/11/24/1412153.aspx