<?php
/*!
* upload demo for php
* @requires xhEditor
*
* @author Yanis.Wang<yanis.wang@gmail.com>
* @site http://xheditor.com/
* @licence LGPL(http://www.opensource.org/licenses/lgpl-license.php)
*
* @Version: 0.9.5 (build 110315)
*
* 注1:本程序仅为演示用,请您务必根据自己需求进行相应修改,或者重开发
* 注2:本程序特别针对HTML5上传,加入了特殊处理
*/
header('Content-Type: text/html; charset=UTF-8');
$inputName='filedata';//表单文件域name
$attachDir='upload';//上传文件保存路径,结尾不要带/
$dirType=1;//1:按天存入目录 2:按月存入目录 3:按扩展名存目录 建议使用按天存
$maxAttachSize=2097152;//最大上传大小,默认是2M
$upExt='txt,rar,zip,jpg,jpeg,gif,png,swf,wmv,avi,wma,mp3,mid';//上传扩展名
$msgType=2;//返回上传参数的格式:1,只返回url,2,返回参数数组
$immediate=isset($_GET['immediate'])?$_GET['immediate']:0;//立即上传模式,仅为演示用
ini_set('date.timezone','Asia/Shanghai');//时区
$err = "";
$msg = "''";
$tempPath=$attachDir.'/'.date("YmdHis").mt_rand(10000,99999).'.tmp';
$localName='';
if(isset($_SERVER['HTTP_CONTENT_DISPOSITION'])&&preg_match('/attachment;\s+name="(.+?)";\s+filename="(.+?)"/i',$_SERVER['HTTP_CONTENT_DISPOSITION'],$info)){//HTML5上传
file_put_contents($tempPath,file_get_contents("php://input"));
$localName=$info[2];
}
else{//标准表单式上传
$upfile=@$_FILES[$inputName];
if(!isset($upfile))$err='文件域的name错误';
elseif(!empty($upfile['error'])){
switch($upfile['error'])
{
case '1':
$err = '文件大小超过了php.ini定义的upload_max_filesize值';
break;
case '2':
$err = '文件大小超过了HTML定义的MAX_FILE_SIZE值';
break;
case '3':
$err = '文件上传不完全';
break;
case '4':
$err = '无文件上传';
break;
case '6':
$err = '缺少临时文件夹';
break;
case '7':
$err = '写文件失败';
break;
case '8':
$err = '上传被其它扩展中断';
break;
case '999':
default:
$err = '无有效错误代码';
}
}
elseif(empty($upfile['tmp_name']) || $upfile['tmp_name'] == 'none')$err = '无文件上传';
else{
move_uploaded_file($upfile['tmp_name'],$tempPath);
$localName=$upfile['name'];
}
}
if($err==''){
$fileInfo=pathinfo($localName);
$extension=$fileInfo['extension'];
if(preg_match('/'.str_replace(',','|',$upExt).'/i',$extension))
{
$bytes=filesize($tempPath);
if($bytes > $maxAttachSize)$err='请不要上传大小超过'.formatBytes($maxAttachSize).'的文件';
else
{
switch($dirType)
{
case 1: $attachSubDir = 'day_'.date('ymd'); break;
case 2: $attachSubDir = 'month_'.date('ym'); break;
case 3: $attachSubDir = 'ext_'.$extension; break;
}
$attachDir = $attachDir.'/'.$attachSubDir;
if(!is_dir($attachDir))
{
@mkdir($attachDir, 0777);
@fclose(fopen($attachDir.'/index.htm', 'w'));
}
PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000);
$newFilename=date("YmdHis").mt_rand(1000,9999).'.'.$extension;
$targetPath = $attachDir.'/'.$newFilename;
rename($tempPath,$targetPath);
@chmod($targetPath,0755);
$targetPath=jsonString($targetPath);
if($immediate=='1')$targetPath='!'.$targetPath;
if($msgType==1)$msg="'$targetPath'";
else $msg="{'url':'".$targetPath."','localname':'".jsonString($localName)."','id':'1'}";//id参数固定不变,仅供演示,实际项目中可以是数据库ID
}
}
else $err='上传文件扩展名必需为:'.$upExt;
@unlink($tempPath);
}
echo "{'err':'".jsonString($err)."','msg':".$msg."}";
function jsonString($str)
{
return preg_replace("/([\\\\\/'])/",'\\\$1',$str);
}
function formatBytes($bytes) {
if($bytes >= 1073741824) {
$bytes = round($bytes / 1073741824 * 100) / 100 . 'GB';
} elseif($bytes >= 1048576) {
$bytes = round($bytes / 1048576 * 100) / 100 . 'MB';
} elseif($bytes >= 1024) {
$bytes = round($bytes / 1024 * 100) / 100 . 'KB';
} else {
$bytes = $bytes . 'Bytes';
}
return $bytes;
}
?>
没有合适的资源?快使用搜索试试~ 我知道了~
最好最轻便的编辑器xheditor简易配置实例
共113个文件
gif:99个
css:10个
js:2个
5星 · 超过95%的资源 需积分: 16 45 下载量 56 浏览量
2011-09-07
14:40:19
上传
评论 2
收藏 114KB RAR 举报
温馨提示
我已配置好,直接使用就可以了,最好最轻便的编辑器xheditor,支持ajax本地上传文件【上传格式也很方便的自定义】,绝对错不了~~~
资源推荐
资源详情
资源评论
收起资源包目录
最好最轻便的编辑器xheditor简易配置实例 (113个子文件)
ui.css 10KB
ui.css 10KB
ui.css 10KB
ui.css 9KB
ui.css 9KB
iframe.css 2KB
iframe.css 2KB
iframe.css 2KB
iframe.css 2KB
iframe.css 2KB
icons.gif 5KB
icons.gif 5KB
icons.gif 5KB
icons.gif 5KB
icons.gif 5KB
loading.gif 1KB
loading.gif 1KB
loading.gif 1KB
loading.gif 1KB
loading.gif 1KB
close.gif 1KB
buttonbg.gif 916B
buttonbg.gif 844B
buttonbg.gif 735B
waiting.gif 628B
waiting.gif 628B
waiting.gif 628B
waiting.gif 597B
waiting.gif 597B
wmp.gif 415B
wmp.gif 415B
wmp.gif 415B
wmp.gif 415B
wmp.gif 415B
flash.gif 241B
flash.gif 241B
flash.gif 241B
flash.gif 241B
flash.gif 241B
anchor.gif 184B
anchor.gif 184B
anchor.gif 184B
anchor.gif 184B
anchor.gif 184B
titlebg.gif 153B
close.gif 128B
close.gif 128B
close.gif 128B
close.gif 128B
tag-address.gif 108B
tag-address.gif 108B
tag-address.gif 108B
tag-address.gif 108B
tag-address.gif 108B
progress.gif 94B
progress.gif 94B
progress.gif 94B
progress.gif 94B
progress.gif 94B
progressbg.gif 93B
progressbg.gif 93B
progressbg.gif 93B
progressbg.gif 93B
progressbg.gif 93B
tag-pre.gif 90B
tag-pre.gif 90B
tag-pre.gif 90B
tag-pre.gif 90B
tag-pre.gif 90B
tag-div.gif 89B
tag-div.gif 89B
tag-div.gif 89B
tag-div.gif 89B
tag-div.gif 89B
tag-h5.gif 86B
tag-h3.gif 86B
tag-h6.gif 86B
tag-h2.gif 86B
tag-h4.gif 86B
tag-h5.gif 86B
tag-h3.gif 86B
tag-h6.gif 86B
tag-h2.gif 86B
tag-h4.gif 86B
tag-h5.gif 86B
tag-h3.gif 86B
tag-h6.gif 86B
tag-h2.gif 86B
tag-h4.gif 86B
tag-h5.gif 86B
tag-h3.gif 86B
tag-h6.gif 86B
tag-h2.gif 86B
tag-h4.gif 86B
tag-h5.gif 86B
tag-h3.gif 86B
tag-h6.gif 86B
tag-h2.gif 86B
tag-h4.gif 86B
tag-h1.gif 84B
共 113 条
- 1
- 2
资源评论
- 阿摩12014-04-11demo里有,还是可以参考的
- wen16192012-10-26直接使用就可以了,最好最轻便的编辑器xheditor
- sandman2013-01-17其实demo里都有
丁文更
- 粉丝: 4
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功