PHP无刷新上传文件实现代码


Posted in PHP onSeptember 19, 2011

index.html

<html> 
<head> 
<title>无刷新上传文件</title> 
<meta Content-type="text/html" charset="utf-8" /> 
<script type="text/javascript"> 
function startUpload() { 
document.getElementById('processing').innerHTML = 'loding...'; 
return true; 
} 
function stopUpload(rel){ 
var msg; 
switch (rel) { 
case 0: 
msg = "上传成功"; 
break; 
case 1: 
msg = "上传的文件超过限制"; 
break; 
case 2: 
msg = "只能上传图片文件"; 
break; 
default: 
msg = "上传文件失败"; 
} 
document.getElementById('processing').innerHTML = msg; 
} 
</script> 
</head> 
<body> 
<div style="text-align:center"> 
<div id="processing"></div> 
<form action="upload.php" method="post" enctype="multipart/form-data" target="form-target" onsubmit="startUpload();"> 
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" /> 
<input type="file" name="myfile" /> 
<input type="submit" name="sub" value="upload" /> 
</form> 
<iframe style="width:0; height:0; border:0;" name="form-target"></iframe> 
</div> 
</body> 
</html>

upload.php
<?php 
sleep(2); 
$fileTypes = array('jpg','png','gif','bmp'); 
$result = null; 
$uploadDir = './upfiles'; 
$maxSize = 1 * pow(2,20); 
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['sub'])) { 
$myfile = $_FILES['myfile']; 
$myfileType = substr($myfile['name'], strrpos($myfile['name'], ".") + 1); 
if ($myfile['size'] > $maxSize) { 
$result = 1; 
} else if (!in_array($myfileType, $fileTypes)) { 
$result = 2; 
} elseif (is_uploaded_file($myfile['tmp_name'])) { 
$toFile = $uploadDir . '/' . $myfile['name']; 
if (@move_uploaded_file($myfile['tmp_name'], $toFile)) { 
$result = 0; 
} else { 
$result = -1; 
} 
} else { 
$result = 1; 
} 
} 
?> 
<script type="text/javascript"> 
window.top.window.stopUpload(<?php echo $result; ?>); 
</script>
PHP 相关文章推荐
PHP Document 代码注释规范
Apr 13 PHP
windows下升级PHP到5.3.3的过程及注意事项
Oct 12 PHP
php缩小png图片不损失透明色的解决方法
Dec 25 PHP
YII模块实现绑定二级域名的方法
Jul 09 PHP
PHP实现从远程下载文件的方法
Mar 12 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
Mar 12 PHP
解读PHP中的垃圾回收机制
Aug 10 PHP
Zend Framework教程之前端控制器Zend_Controller_Front用法详解
Mar 07 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
Sep 30 PHP
微信公众平台开发教程②微信端分享功能图文详解
Apr 10 PHP
laravel框架模板之公共模板、继承、包含实现方法分析
Aug 30 PHP
thinkphp5.1框架模板赋值与变量输出示例
May 25 PHP
PHP通过正则表达式下载图片到本地的实现代码
Sep 19 #PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
Sep 19 #PHP
php去除重复字的实现代码
Sep 16 #PHP
PHP与SQL注入攻击防范小技巧
Sep 16 #PHP
php中判断字符串是否全是中文或含有中文的实现代码
Sep 16 #PHP
php中模拟POST传递数据的两种方法分享
Sep 16 #PHP
php中获得视频时间总长度的另一种方法
Sep 15 #PHP
You might like
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
2011/11/10 PHP
curl和libcurl的区别简介
2015/07/01 PHP
PHP简单判断iPhone、iPad、Android及PC设备的方法
2016/10/11 PHP
phpStudy 2016 使用教程详解(支持PHP7)
2017/10/18 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
能说明你的Javascript技术很烂的五个原因分析
2011/10/28 Javascript
JavaScript基本编码模式小结
2012/05/23 Javascript
JavaScript事件处理器中的event参数使用介绍
2013/05/24 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
JavaScript用select实现日期控件
2015/07/17 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
2016/05/12 Javascript
javascript设计模式之module(模块)模式
2016/08/19 Javascript
详解nodejs实现本地上传图片并预览功能(express4.0+)
2017/06/28 NodeJs
微信小程序实现简单input正则表达式验证功能示例
2017/11/30 Javascript
JS实现的base64加密解密操作示例
2018/04/18 Javascript
vue过滤器用法实例分析
2019/03/15 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
2019/11/10 Javascript
vue3使用vue-count-to组件的实现
2020/12/25 Vue.js
[42:56]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python 模块EasyGui详细介绍
2017/02/19 Python
使用pycharm生成代码模板的实例
2018/05/23 Python
使用python画个小猪佩奇的示例代码
2018/06/06 Python
python matplotlib折线图样式实现过程
2019/11/04 Python
flask 实现token机制的示例代码
2019/11/07 Python
Python SQLAlchemy入门教程(基本用法)
2019/11/11 Python
Python中的 ansible 动态Inventory 脚本
2020/01/19 Python
matplotlib交互式数据光标mpldatacursor的实现
2021/02/03 Python
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
美赞臣新加坡官方旗舰店:Enfagrow新加坡
2019/05/15 全球购物
社区优秀志愿者先进事迹
2014/05/09 职场文书
会计专业自荐信
2014/06/03 职场文书
环境科学专业求职信
2014/08/04 职场文书
幼儿园校园小喇叭广播稿
2014/10/17 职场文书
小学老师对学生的评语
2014/12/29 职场文书
Win11怎么启动任务管理器?Win11启动任务管理器的几种方法
2021/11/23 数码科技
GoFrame gredis缓存DoVar Conn连接对象 自动序列化GoFrame gredisDo/DoVar方法Conn连接对象自动序列化/反序列化总结
2022/06/14 Golang