php+js实现异步图片上传实例分享


Posted in PHP onJune 02, 2014

upload.php

<?php
if(isset($_FILES["myfile"]))
{
$ret = array();
$uploadDir = 'images'.DIRECTORY_SEPARATOR.date("Ymd").DIRECTORY_SEPARATOR;
$dir = dirname(__FILE__).DIRECTORY_SEPARATOR.$uploadDir;
file_exists($dir) || (mkdir($dir,0777,true) && chmod($dir,0777));
if(!is_array($_FILES["myfile"]["name"])) //single file
{
$fileName = time().uniqid().'.'.pathinfo($_FILES["myfile"]["name"])['extension'];
move_uploaded_file($_FILES["myfile"]["tmp_name"],$dir.$fileName);
$ret['file'] = DIRECTORY_SEPARATOR.$uploadDir.$fileName;
}
echo json_encode($ret);
}
?>

index.html

<!DOCTYPE html>
<html>
<head>
    <title>Html5 Ajax 上传文件</title>
    <meta charset="utf-8">
<script type="text/javascript">

    var xhr;
    function createXMLHttpRequest()
    {
        if(window.ActiveXObject)
        {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
        else if(window.XMLHttpRequest)
        {
            xhr = new XMLHttpRequest();
        }
    }

    function UpladFile()
    {
        var fileObj = document.getElementById("file").files[0];
        var FileController = 'upload.php';
        var form = new FormData();
        form.append("myfile", fileObj);
        createXMLHttpRequest();
        xhr.onreadystatechange = handleStateChange;
        xhr.open("post", FileController, true);
        xhr.send(form);
    }

    function handleStateChange()
    {
        if(xhr.readyState == 4)
        {
            if (xhr.status == 200 || xhr.status == 0)
            {
                var result = xhr.responseText;
                var json = eval("(" + result + ")");
                alert('图片链接:\n'+json.file);
            }
        }
    }

</script>

<style>
    .txt{ height:28px; border:1px solid #cdcdcd; width:670px;}
    .mybtn{ background-color:#FFF; line-height:14px;vertical-align:middle;border:1px solid #CDCDCD;height:30px; width:70px;}
    .file{ position:absolute; top:0; right:80px; height:24px; filter:alpha(opacity:0);opacity: 0;width:260px }
</style>
</head>

<body>
<div class="form-group">
    <label class="control-label">图片</label>
    <br/>
    <input type='text' name='textfield' id='textfield' class='txt' />
    <span onclick="file.click()"  class="mybtn">浏览...</span>
    <input type="file" name="file" class="file" id="file" size="28" onchange="document.getElementById('textfield').value=this.value" />
    <span onclick="UpladFile()" class="mybtn">上传</span>
</div>
</body>

</html>
PHP 相关文章推荐
cmd下运行php脚本
Nov 25 PHP
PHP获取url的函数代码
Aug 02 PHP
实例介绍PHP的Reflection反射机制
Aug 05 PHP
Yii使用find findAll查找出指定字段的实现方法
Sep 05 PHP
Zend Framework框架Smarty扩展实现方法
Mar 22 PHP
php gd等比例缩放压缩图片函数
Jun 12 PHP
php实现的网页版剪刀石头布游戏示例
Nov 25 PHP
laravel创建类似ThinPHP中functions.php的全局函数
Nov 26 PHP
thinkPHP统计排行与分页显示功能示例
Dec 02 PHP
PHP多进程编程实例详解
Jul 19 PHP
PHP 多任务秒级定时器的实现方法
May 13 PHP
PHP测试框架PHPUnit组织测试操作示例
May 28 PHP
php实例分享之html转为rtf格式
Jun 02 #PHP
php 伪静态之IIS篇
Jun 02 #PHP
php伪静态之APACHE篇
Jun 02 #PHP
50个PHP程序性能优化的方法
Jun 02 #PHP
浅谈php扩展imagick
Jun 02 #PHP
PHP小技巧之函数重载
Jun 02 #PHP
mac下Apache + MySql + PHP搭建网站开发环境
Jun 02 #PHP
You might like
php入门学习知识点四 PHP正则表达式基本应用
2011/07/14 PHP
PHP中的正则表达式函数介绍
2012/02/27 PHP
php时间戳转换的示例
2014/03/31 PHP
php版微信小店API二次开发及使用示例
2016/11/12 PHP
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
2008/12/25 Javascript
别了 JavaScript中的isXX系列
2012/08/01 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
jQuery手动点击实现图片轮播特效
2020/04/20 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
jquery对dom节点的操作【推荐】
2016/04/15 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
2016/05/03 Javascript
浅谈JavaScript中小数和大整数的精度丢失
2016/05/31 Javascript
百度多文件异步上传控件webuploader基本用法解析
2016/11/07 Javascript
javascript 闭包详解及简单实例应用
2016/12/31 Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
2017/01/23 Javascript
js实现类bootstrap模态框动画
2017/02/07 Javascript
JavaScript 字符串数字左补位,右补位,取固定长度,截位扩展函数代码
2017/03/25 Javascript
JQuery 又谈ajax局部刷新
2017/11/27 jQuery
JavaScript基于面向对象实现的猜拳游戏
2018/01/03 Javascript
webpack打包js的方法
2018/03/12 Javascript
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
python 数据清洗之数据合并、转换、过滤、排序
2017/02/12 Python
Python学习pygal绘制线图代码分享
2017/12/09 Python
Python实现在某个数组中查找一个值的算法示例
2018/06/27 Python
Python爬虫实现自动登录、签到功能的代码
2020/08/20 Python
把富文本的回车转为br标签
2019/08/09 HTML / CSS
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
启动一个线程是用run()还是start()
2016/12/25 面试题
家长给老师的感谢信
2015/01/20 职场文书
2015年师德师风自我评价范文
2015/03/05 职场文书
2015年七七事变78周年纪念活动方案
2015/05/06 职场文书
敬老院义诊活动总结
2015/05/07 职场文书
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
2021/03/30 HTML / CSS
Nginx安装完成没有生成sbin目录的解决方法
2021/03/31 Servers
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL
MySQL存储过程及语法详解
2022/08/05 MySQL