SWFUpload多文件上传,文件大小增大问题
因项目需要,内容编辑希望增加多文件上传功能,我们采用了SWFUpload
SWFUpload下载地址http://swfupload.googlecode.com/
SWFUpload下载档案:SWFUpload-Samples v2.1.0.Release.zip
在\SWFUpload Samples v2.1.0\demos\applicationdemo.net目录下相应的asp.net源码
源码只是演示了把缩略图信息保存到一个List里面,并定义了一个Thumbnail类。
首先,我修改了部分源码,先选择图片,然后保存图片,这样万一编辑选择错误了,可以重新选择,如图所示:
我重新改写了Thumbnail,变成了ImageInfo类,代码如下
public ImageInfo(PicTypeUtility picType, int picSize, int picH, int picW, int picTempValue, string picName, byte[] data)
{
this.picType = picType;
this.picSize = picSize;
this.picHeight = picH;
this.picWidth = picW;
this.picTempValue = picTempValue;
this.picName = picName;
this.data = data;
}
private PicTypeUtility picType;
public PicTypeUtility PicType
{
get { return picType; }
set { picType = value; }
}
private int picSize;
public int PicSize
{
get { return picSize; }
set { picSize = value; }
}
private int picHeight;
public int PicHeight
{
get { return picHeight; }
set { picHeight = value; }
}
private int picWidth;
public int PicWidth
{
get { return picWidth; }
set { picWidth = value; }
}
private int picTempValue;
public int PicTempValue
{
get { return picTempValue; }
set { picTempValue = value; }
}
private string picName;
public string PicName
{
get { return picName; }
set { picName = value; }
}
private byte[] data;
public byte[] Data
{
get { return this.data; }
set { this.data = value; }
}
那么相应的
Thumbnail thumb = new Thumbnail(thumbnail_id, ms.GetBuffer()); 需要修改为:
ImageInfo imageInfo = new ImageInfo(picType, picSize, picHeight, picWidth, 0, picName, ms.GetBuffer());
保存的时候,代码如下:
FileStream fs = new FileStream(Server.MapPath(into.PicName), FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(info.Data);
bw.Close();
fs.Close();
在实际使用中,发现某些图片,保存到文件夹后,尺寸竟然变成了双倍大小。一种65k左右的图片,保存后达到128k。
对代码做了如下修改
修改ImageInfo类
增加Stream SM属性
private System.IO.Stream sm;
public System.IO.Stream SM
{
get { return this.sm; }
set { this.sm = value; }
}
增加以下构造函数
public ImageInfo(PicTypeUtility picType, int picSize, int picH, int picW, int picTempValue, string picName, System.IO.Stream sm)
{
this.picType = picType;
this.picSize = picSize;
this.picHeight = picH;
this.picWidth = picW;
this.picTempValue = picTempValue;
this.picName = picName;
this.sm = sm;
}
并修改upload.aspx
HttpPostedFile imgUpload = Request.Files["Filedata"];
ImageInfo imageInfo = new ImageInfo(picType, picSize, picHeight, picWidth, 0, picName, imgUpload.InputStream);
保存的时候,代码修改如下:
System.Drawing.Image image = System.Drawing.Image.FromStream(info.SM);
image.Save(Server.MapPath(info.PicName));
image.Dispose();
最后,请记住为ImageInfo添加可系列化属性[Serializable()],这个可别忘了
测试,一切正常!
转载于:https://www.cnblogs.com/liuhongqing/archive/2009/04/16/1437214.html
SWFUpload多文件上传,文件大小增大问题相关推荐
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码]...
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码] 文件上传这东西说到底有时候很痛,原来的asp.net服务器 ...
- 文件上传 文件大小和类型
文件上传 文件大小和类型 一.文件上传 二.文件大小和类型
- SWFUpload多文件上传使用指南
SWFUpload是一个flash和js相结合而成的文件上传插件,其功能非常强大.以前在项目中用过几次,但它的配置参数太多了,用过后就忘记怎么用了,到以后要用时又得到官网上看它的文档,真是太烦了.所以 ...
- Java 利用SWFUpload多文件上传 session 为空失效,不能验证的问题
我们都知道普通的文件上传是通过表单进行文件上传的,还不能达到异步上传的目的.通过使用某些技术手段,比如jquery form.js可以达到异步上传的目的,但最重要的问题在于,它不能够进行多个文件的上传 ...
- swfupload 多文件上传的属性与事件方法总结
SWFUpload的原理: 利用Flash选择文件后上传,通过Flash和JS交互,对整个过程进行控制--包括页面的DOM操作之类的,都可以通过JS来进行控制. 说白了,就是用Flash上传,JS操作 ...
- 文件上传利器SWFUpload使用指南
2019独角兽企业重金招聘Python工程师标准>>> 文件上传利器SWFUpload使用指南 SWFUpload是一个flash和js相结合而成的文件上传插件,其功能非常强大.以前 ...
- 文件上传利器SWFUpload使用指南(转)
http://www.cnblogs.com/2050/archive/2012/08/29/2662932.html 文件上传利器SWFUpload使用指南 SWFUpload是一个flash和js ...
- 文件上传利器SWFUpload使用
原文链接:http://www.cnblogs.com/2050/archive/2012/08/29/2662932.html SWFUpload是一个flash和js相结合而成的文件上传插件,其功 ...
- 文件上传控件SWFUpload使用指南分享
SWFUpload是一个flash和js相结合而成的文件上传插件,其功能非常强大.以前在项目中用过几次,但它的配置参数太多了,用过后就忘记怎么用了,到以后要用时又得到官网上看它的文档,真是太烦了.所以 ...
最新文章
- 计算机操作系统第四版习题答案 第一章简答题
- 5G+AI成产业新引擎 安防行业切入点在哪里?
- Mysql数据库(二)——mysql数据库管理
- C++Builder 2010深入TApplication类之属性
- 网站安全之XSS漏洞攻击以及防范措施
- 读取进程access_IOT指南之嵌入式软件篇gt;5.Linux c编程之进程间通信(管道)
- 宗地图绘制要求和规范_国内土地市场宗地图的绘制标准制图规范-【领仕网】...
- 某大厂算法工程师面试题详解,问题+答案
- 病毒木马查杀实战第012篇:QQ盗号木马之逆向分析
- BeanUtils.copyProperties()复制对象时改变属性类型
- 高等教育学:教育目的与教育制度
- 各主板黑苹果dsdt补丁_苹果系统发展简史
- 【千峰】网络安全学习笔记
- FBX SDK 总结之中文问题
- 联想服务器重装系统只有光标,联想bios重装系统图文教程
- mysql 规则引擎_为什么使用规则引擎?
- for循环与range方法
- Python-文件夹的拷贝操作
- 如何把docx转成doc
- 【Android开发】Android概述