图片压缩后上传Flash
小标 2018-03-08 来源 :网络 阅读 852 评论 0

摘要:图片压缩后上传!Flash图片极速上传!提供参数控制!

图片压缩后上传!Flash图片极速上传!提供参数控制!

需求

如果用户使用数码相机照的照片一般都会在很大!(2M~5M)

一般网站都会在用户上传照片后对照片进行适当压缩,以提高网页浏览时照片的加载速度。

如果可以在客户端对照片压缩后上传,可以节省带宽,并且也减轻服务器压力。会有很好的用户体验!以前实现这样的功能都需要借助上传组件!

其实使用Flash 10.0就可以实现照片压缩后上传。

原理

首先使用Flash的上传功能让用户选择要上传的照片。

加载选择照片的数据到Flash中。(此功能需要Flash10.0以上版本)

将数据加载到Flash的image组件中。

将image按照合适大小进行缩放。

在对image的显示区域进行Flash截图存入Bitmap。

将Bitmap转换为Jpg格式数据。

使用post方式将Jpg数据发送到服务器端!

调用方法  

<!DOCTYPE html>
<html>
<head>
    <title>图片压缩上传</title>
    <script type="text/javascript" src="swfobject.js"></script>
</head>
<body onload="showFlash();">
 
    <div id="divFlash">
        加载中...
    </div>
    <script type="text/javascript">
        function showFlash() {
            var params = {
                serverUrl: "saveImage.aspx",
                jsFunction: "flashReturn",
                imgWidth:500,
                imgHeight:500,
                imgQuality:80,
                btnText:'图 片'
            }
            swfobject.embedSWF("imgZipUpload.swf", "divFlash", "100", "30", "10.0.0", "expressInstall.swf", params);
        }
 
        function flashReturn(type, str) {
            if(type == 'error')
            {
                alert(str);
            }
            else if (type == 'complete')
            {
                var img1 = document.getElementById('img1');
                img1.style.display = "block";
                img1.src = str;
            }
        }
    </script>
    <img id="img1" style="display:none;" />
</body>
</html>

 Flash参数说明

图片压缩后上传Flash

说明:

用户上传照片会等比压缩在指定范围内。

但当用户照片尺寸必需要缩放尺寸小时,不对用户照片进行缩放。

上传时只支持上传jpg或bmp格式图片。因为png或gif如果是透明的在压缩后会变得不透明,所以不支持png或gif图片上传。

imgQuality 图片质量数值越大质量越高,但文件也会越大。

jsFunction 回调JS函数参数type,str  type 当为error时,str为错误信息 当为complete,str为服务器端返回值

Flash中的按钮必须用户手动点击后才会弹出选择文件框!

服务器端页面(Asp.net)

Request.InputStream 压缩后的jpg文件流

Request.Headers["fileName"] 用户图片名称

Request.Headers["width"] 压缩后宽度

Request.Headers["height"] 压缩后高度

Response.Write(""); 上传成功返回数据


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标常用软件Flash频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程