当前位置: 首页 > news >正文

简单 php结合WebUploader实现文件上传功能

WebUploader 资源下载
http://fex.baidu.com/webuploader/download.html

WebUploader 使用方法
http://fex.baidu.com/webuploader/getting-started.html

php 上传代码

<?php
header('Content-type:text/html;charset=utf-8');if($_FILES['file']['error'] == 0){  // 判断上传是否正确$fileName = $_FILES['file']['name'];  // 获取文件名称$fileSize = $_FILES['file']['size'];  // 获取文件大小$tmp_name = $_FILES["file"]["tmp_name"]; // 获取上传文件默认临时地址$fileTypeInfo = ['doc','jpg','png','docx','xls','xlsx','log'];  // 定义允许上传文件类型【很多种只列举3种】$fileType = substr(strrchr($fileName,'.'),1); // 提取文件后缀名if(!in_array($fileType,$fileTypeInfo)){  // 判断该文件是否为允许上传的类型echo '上传失败,文件格式不正确';die();}if($fileSize /1024 > 10240){  // 规定文件上传大小【文件为Byte/1024 转为 kb】echo '上传失败,文件太大请上传小于1024Kb';die();}date_default_timezone_set('PRC'); // 定义时间戳if(!file_exists('D:/PHPsoftware/wamp64/www/stt/')){  // 判断是否存在存放上传文件的目录mkdir('D:/PHPsoftware/wamp64/www/stt/');  // 建立新的目录}else{$newFileName = $fileName;  // 命名新的文件名称if(move_uploaded_file($tmp_name,'D:/PHPsoftware/wamp64/www/stt/'.$newFileName)){  // 移动文件到指定目录echo ("‘../../PHPsoftware/wamp64/www/stt/cs’   上传成功");}}}else{echo "上传失败".$_FILES['file']['error'];  // 显示错误信息}?>

html 页面代码

jquery下载地址(注意:使用webuploader 插件必须得jquery-1.11.1版本及以上才可以
http://code.jquery.com/jquery-1.11.1.min.js


<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><!--引入CSS--><link rel="stylesheet" type="text/css" href="./assets/js/webuploader.css"><!--引入JS--><script src="./assets/js/jquery-1.11.1.min.js"></script><script src="./assets/js/webuploader.js"></script><script type="text/javascript">$(function() {//开始上传按钮var $btn = $('#ctlBtn');//文件信息显示区域var $list = $('#thelist');//当前状态var state = 'pending';//初始化Web Uploadervar uploader = WebUploader.create({// swf文件路径swf: './assets/js/Uploader.swf',// 文件接收服务端。server: 'upload.php',// 选择文件的按钮。可选。// 内部根据当前运行是创建,可能是input元素,也可能是flash.pick: '#picker',//设置文佳上传的类型格式accept: {  //不建议使用,使用时选择文件div失效title: 'file',extensions: 'xls,xlsx,word,doc,ppt,docx,rtf,ppt,txt,pptx,pdf',mimeTypes: '.xls,.xlsx,.word,.doc,.ppt,.docx,.rtf,.ppt,.txt,.pptx,.pdf'}});// 当有文件被添加进队列的时候(选择文件后调用)uploader.on( 'fileQueued', function( file ) {$list.append( '<div id="' + file.id + '" class="item">' +'<h4 class="info">' + file.name + '</h4>' +'<p class="state">等待上传...</p>' +'</div>' );});// 文件上传过程中创建进度条实时显示。uploader.on( 'uploadProgress', function( file, percentage ) {var $li = $( '#'+file.id );$li.find('p.state').text('上传中(' + parseInt(percentage * 100) + '%)');});// 文件上传成功后会调用uploader.on( 'uploadSuccess', function( file ) {$( '#'+file.id ).find('p.state').text('已上传');savefilemanager("/vod/uploadfilemanager/"+file.name,file.name);});// 文件上传失败后会调用uploader.on( 'uploadError', function( file ) {$( '#'+file.id ).find('p.state').text('上传出错');});// 文件上传完毕后会调用(不管成功还是失败)uploader.on( 'uploadComplete', function( file ) {$( '#'+file.id ).find('.progress').fadeOut();});// all事件(所有的事件触发都会响应到)uploader.on( 'all', function( type ) {if ( type === 'startUpload' ) {state = 'uploading';} else if ( type === 'stopUpload' ) {state = 'paused';} else if ( type === 'uploadFinished' ) {state = 'done';}if ( state === 'uploading' ) {$btn.text('暂停上传');} else {$btn.text('开始上传');}});// 开始上传按钮点击事件响应$btn.on( 'click', function() {if ( state === 'uploading' ) {uploader.stop();} else {uploader.upload();}});});
</script>
<style>#picker {display: inline-block;}#ctlBtn {position: relative;display: inline-block;cursor: pointer;background: #EFEFEF;padding: 10px 15px;color: #2E2E2E;text-align: center;border-radius: 3px;overflow: hidden;}#ctlBtn:hover {background: #DDDDDD;}<style>.webuploader-container {position: relative;}.webuploader-element-invisible {position: absolute !important;clip: rect(1px 1px 1px 1px); /* IE6, IE7 */clip: rect(1px,1px,1px,1px);}.webuploader-pick {position: relative;display: inline-block;cursor: pointer;background: #00b7ee;padding: 10px 15px;color: #fff;text-align: center;border-radius: 3px;overflow: hidden;}.webuploader-pick-hover {background: #00a2d4;}.webuploader-pick-disable {opacity: 0.6;pointer-events:none;}#picker {display: inline-block;}#ctlBtn {position: relative;display: inline-block;cursor: pointer;background: #EFEFEF;padding: 10px 15px;color: #2E2E2E;text-align: center;border-radius: 3px;overflow: hidden;}#ctlBtn:hover {background: #DDDDDD;}#picker {display: inline-block;}#ctlBtn {position: relative;display: inline-block;cursor: pointer;background: #EFEFEF;padding: 10px 15px;color: #2E2E2E;text-align: center;border-radius: 3px;overflow: hidden;}#ctlBtn:hover {background: #DDDDDD;}</style></head><body><div id="uploader" class="wu-example"><div class="btns"><div id="picker">选择文件</div><div id="ctlBtn" class="webuploader-upload">开始上传</div></div><!--用来存放文件信息--><div id="thelist" class="uploader-list"></div></div></body>
</html>
http://www.lryc.cn/news/166227.html

相关文章:

  • Pandas数据分析一览-短期内快速学会数据分析指南(文末送书)
  • 应用程序分类与相关基本概念介绍
  • springcloude gateway的意义
  • 重新定义每天进步一点点
  • 代码随想录算法训练营第51天 | ● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费
  • 李佳琦掉粉,国货品牌却从“商战大剧”走向“情景喜剧”
  • linux 下 C++ 与三菱PLC 通过MC Qna3E 二进制 协议进行交互
  • Spring基础(2w字---学习总结版)
  • 07 目标检测-YOLO的基本原理详解
  • 每日一题 78子集(模板)
  • OpenCV之形态学操作
  • 设计模式:享元模式
  • 汉诺塔问题(包含了三台柱和四台柱)——C语言版本
  • 【实训项目】滴滴电竞APP
  • C++核心编程--类篇
  • java中用feign远程调用注解FeignClient的时候不重写Encoder和Decoder怎么格式不对呢?
  • 记录使用Docker Compose 部署《XAPI项目》遇道的问题及解决方案
  • 腾讯云OCR实践 - 降低客服财务运营成本
  • springboot+vue上传图片
  • 高压电缆护层接地环流及温度在线监测系统
  • 无涯教程-JavaScript - IPMT函数
  • 【EI会议征稿】第三届机械自动化与电子信息工程国际学术会议(MAEIE 2023)
  • 手写实现LRN局部响应归一化算子
  • 朗思科技数字员工通过统信桌面操作系统兼容性互认认证
  • 十六、Webpack常见的插件和模式
  • ChatGPT新增超强插件:文本直接生成视频、海报,支持自定义修改!
  • 亚像素边缘提取的例子
  • Wayland:推动Linux桌面进入下一代图形显示时代
  • mysql外键(foreign key)
  • 内网穿透——Windows搭建服务器