System.Drawing.Image.FromFile()获取客户端图片的弊端?
来源:互联网 发布:c语言1000以内水仙花数 编辑:程序博客网 时间:2024/06/06 00:43
System.Drawing.Bitmap bmp;
string UploadFileName = "";
string UploadFileDestination = "";
UploadFileName = UploadFile.PostedFile.FileName;
Response.ContentType="image/jpeg";
System.Drawing.Image img=System.Drawing.Image.FromFile(UploadFileName);
if(img.Width>600 || img.Height>400)
{
bmp=new System.Drawing.Bitmap(img,600,400);
}
else
{
bmp=new System.Drawing.Bitmap(img,img.Width,img.Height);
}
string fileTime=DateTime.Now.Year.ToString()+DateTime.Now.Month.ToString()+DateTime.Now.Day.ToString()+DateTime.Now.Hour.ToString() +DateTime.Now.Minute.ToString()+DateTime.Now.Second.ToString()+DateTime.Now.Millisecond.ToString();
string fileExtName=UploadFileName.Substring(UploadFileName.LastIndexOf("."));
//UploadFileName = UploadFileName.Substring(UploadFileName.LastIndexOf("//")+1); UploadFileName="//"+fileTime+fileExtName;
//获取服务器根目录的物理路径
UploadFileDestination = HttpContext.Current.Request.PhysicalApplicationPath;
//指定你上传文件的文件夹,注意开放权限
UploadFileDestination += "upfiles";
UploadFileDestination += "//";
//保存位图
bmp.Save(UploadFileDestination + UploadFileName,System.Drawing.Imaging.ImageFormat.Jpeg);
注意了:用FromFile()获取客户端的文件会产生这样一个问题,在有的机子上能上传成功,而有的则不能。这是为什么呢?这与系统NTFS文件格式有关,在客户端文件夹的访问权限要设置成Everyone开放。因此用FromFile()获取客户端文件进行操作并不是好方法,有了种更好的办法就是用流操作,具体如下:
把上面代码中的System.Drawing.Image img=System.Drawing.Image.FromFile(UploadFileName);
改为:
System.Drawing.Image img=System.Drawing.Image.FromStream(UploadFile.PostedFile.InputStream);
这种方法不会受到权限的干扰,因为它是把客户端文件读到内存当中,而内存并不存在权限的问。
那也不是说使用FromFile()就不行,其实可以通过将客户端文件获取后先存在服务器端进行操作,将操作后的文件存为一个新的文件后删除原文件.
- System.Drawing.Image.FromFile()获取客户端图片的弊端?
- System.Drawing.Image.FromFile()获取客户端图片的弊端?
- System.Drawing.Image.FromFile()获取客户端图片的弊端
- System.Drawing.Image.FromFile()获取图片路径的弊端
- 页面显示System.Drawing.Image图片
- 关闭Image.FromFile(filePath)打开的文件
- C# 加载图片image --(C#)Image.FromFile 方法会锁住文件的原因及可能的解决方法
- 如何把System.Drawing.Image对象img,在页面的Image控件上显示出来
- System.Drawing.Graphics读取带有索引的图片及思考
- 给图片加水印,System.Drawing,System.Drawing.Bitmap
- Image.FromFile 从数据库读取流加载图片
- [C#]读取当前项目中的图片Image.FromFile
- 关于Image newImage = Image.FromFile("SampImag.jpg");的问题
- C# Image.FromFile() 异常
- Gdiplus::Image::FromFile
- System.Drawing.Color的使用
- Image.FromStream与Image.FromFile
- 关于C#Image.FromFile文件不释放问题的解决
- 传智播客struts学习,Struts的概念和体系结构
- 菜猪的JAVA 网络编程学习之Socket用法详解(上)
- openmeetings052安装记录
- Oracle数据库重复数据删除的三种情况收藏
- ORACLE管理员指南(二):创建oracle数据库
- System.Drawing.Image.FromFile()获取客户端图片的弊端?
- 优化数据库大幅度提高Oracle的性能收藏
- strlen和sizeof函数区别(深入理解)
- Silverlight 的控件生命周期
- Creating Spatial Information Infrastructures: Towards the Spatial Semantic Web
- Directx9.0 a shader approach 学习笔记1---初始化D3D
- Apache JMeter
- 一次性批量插入大批量测试数据记录收藏
- 好书推荐