重新修改了以前的多文件上传,加入了JPG图片压缩功能!
概述
Flash多文件上传,提供JPG图片压缩选项。显示文件上传进度!
Flash参数说明
标识 | 名称 | 是否必填 | 默认值 | 取值范围 | 说明 |
---|---|---|---|---|---|
serverUrl | 服务器响应地址 | 必填 | 服务器端接收文件上传的处理页面 | ||
jsFunction | 回调JS函数 | 选填 | 回调的JS函数 | ||
filter | 文件格式 | 选填 | *.* | 默认所有文件 多种文件格式可用;分割 |
|
maxFileCount | 一次可最多上传文件数 | 选填 | 0 | 0<=数值 | 当为0时没有限制 |
maxFileSize | 单文件大小限制 | 选填 | 0 | 0<=数值 | 单位为字节 为0时没有限制 |
imageWidth | JPG图片压缩宽度 | 选填 | 0 | 0<=数值<=2000 | 为0时宽度不缩放 |
imageHeight | JPG图片压缩高度 | 选填 | 0 | 0<=数值<=2000 | 为0时高度不缩放 |
imageQuality | JPG图片压缩质量 | 选填 | 80 | 1<=数值<=100 | 数值越大质量越高,但文件会越大 |
uploadText | 上传按钮文本 | 选填 | 上 传 | ||
cancelText | 取消按钮文本 | 选填 | 取 消 | ||
labelFormat | 上传时文本提示 | 选填 | 例如:已上传{%} |
说明:
- 当imageWidth和imageHeight都为0时,不对JPG图片进行任何缩放,将直接上传原始图片!
- 当imageWidth或imageHeight任意一个值不为0时,则对JPG图片进行缩放操作。
- 上传时文本提示默认为:{%} {uploadSize}/{allSize} [{fileIndex}/{fileCount}] {fileSize} {fileName}
{%} 表示当前上传百分比
{uploadSize} 已上传的总文件大小
{allSize} 需要上传的总文件大小
{fileIndex} 当前正上传第几个文件
{fileCount} 文件总数
{fileSize} 当前上传的文件大小
{fileName} 当前上传的文件名称
Flash提供的接口函数
setPara 设置上传参数。setPara(参数标识,值)
返回值:true设置成功。false设置失败!当上传时不允许设置。
isBusy 返回当前Flash是否正在上传。返回值:true正在上传。false空闲。
JS函数接口
参数:type, str type 类型 str 信息
type类型 | str值 | 说明 |
---|---|---|
error | 错误信息 | 当发生错误时触发 |
upload_cancel | 用户取消了上传 | 当上传时用户点击取消按钮时触发 |
upload_start | 需要上传的文件数|文件总大小 | 当用户选择文件后开始上传时触发 |
upload_file_complete | 服务器返回信息 | 单个文件上传成功时触发 |
upload_complete | 服务器返回的所有信息合集,使用|分割 | 所有文件上传成功时触发 |
upload_progress | 上传进度信息 | 上传进度变化时触发 |
注意:因为可上传的文件扩展名可通过JS修改,所以需要在服务器端后台验证文件扩展名是否正确!
实例及源码下载:https://files.cnblogs.com/zjfree/mFileUpload.rar
后记:
2011-12-20 上传一个小图片,后上传一个大图片,大图片就不压缩问题,已经修复。欢迎提出问题!
2011-12-21 在批量上传时,不会触发upload_complete过程。脚本无法判断是否上传完成。 问题已修复。
2015-05-16
PHP版后台文件接收代码如下:
<?php $file_name = date('Ymd') . '_' . time() . '_' . mt_rand(1, 1000) . '.jpg'; $file_path = '/img/user_img/' . date('Y_m') . '/'; $dir = dirname(__FILE__) . $file_path; //创建目录失败 @mkdir($dir, 0777, true); $img_path = $dir . $file_name; $img_url = 'http://' . $_SERVER["HTTP_HOST"] . $file_path . $file_name; if (count($_FILES) > 0) { $f = current($_FILES); move_uploaded_file($f["tmp_name"], $img_path); } else { $rawpostdata = file_get_contents("php://input"); $myfile = fopen($img_path, "w") or die("Unable to open file!"); fwrite($myfile, $rawpostdata); fclose($myfile); } echo $img_url;
欢迎转载,转载请注明:转载自[ http://www.cnblogs.com/zjfree/ ]