zoukankan      html  css  js  c++  java
  • 多文件上传[Flash] PHP

    重新修改了以前的多文件上传,加入了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/ ]
  • 相关阅读:
    on条件与where条件的区别
    Sqlserver中如何创建链接服务器
    SQL Server 2008 R2 主从数据库同步
    网站性能优化
    检索COM 类工厂中CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败
    text输入框中按下enter键时阻止刷新页面
    关于以DataTable形式批量写入数据的案例
    关于Excel导入的HDR=YES; IMEX=1详解
    一条结合where、group、orderby的linq语法
    Linq使用Group By经验总结
  • 原文地址:https://www.cnblogs.com/zjfree/p/1929100.html
Copyright © 2011-2022 走看看