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 相关文章推荐
php 中文字符入库或显示乱码问题的解决方法
Apr 12 PHP
基于PHPExcel的常用方法总结
Jun 13 PHP
PHP图片上传代码
Nov 04 PHP
PHP static局部静态变量和全局静态变量总结
Mar 02 PHP
PHP开发框架kohana中处理ajax请求的例子
Jul 14 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
Nov 18 PHP
php查询ip所在地的方法
Dec 05 PHP
PHP 实现代码复用的一个方法 traits新特性
Feb 22 PHP
通过PHP简单实例介绍文件上传
Dec 16 PHP
如何判断php mysqli扩展类是否开启
Dec 24 PHP
php + WebUploader实现图片批量上传功能
May 06 PHP
php面向对象程序设计中self与static的区别分析
May 21 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+MySQL的聊天室设计
2006/10/09 PHP
一步一步学习PHP(7) php 字符串相关应用
2010/03/05 PHP
CI框架自动加载session出现报错的解决办法
2014/06/17 PHP
jscript之Open an Excel Spreadsheet
2007/06/13 Javascript
原生js实现shift/ctrl/alt按键的获取
2013/04/08 Javascript
js播放wav文件(源码)
2013/04/22 Javascript
当鼠标移动时出现特效的JQuery代码
2013/11/08 Javascript
javascript 处理null及null值示例
2014/06/09 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
JavaScript判断数字是否为质数的方法汇总
2016/06/02 Javascript
bootstrap监听滚动实现头部跟随滚动
2016/11/08 Javascript
JS实现页面跳转参数不丢失的方法
2016/11/28 Javascript
详解.vue文件中监听input输入事件(oninput)
2017/09/19 Javascript
VUE-cli3使用 svg-sprite-loader
2018/10/20 Javascript
react中Suspense的使用详解
2019/09/01 Javascript
详解Nuxt.js 实战集锦
2019/11/19 Javascript
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
python数据处理实战(必看篇)
2017/06/11 Python
python使用adbapi实现MySQL数据库的异步存储
2019/03/19 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
2020/02/21 Python
Python中zipfile压缩文件模块的基本使用教程
2020/06/14 Python
Python requests上传文件实现步骤
2020/09/15 Python
贝玲妃美国官方网站:Benefit美国
2016/08/28 全球购物
Free People中国官网:波西米亚风格女装服饰
2016/08/30 全球购物
纽约家具、家居装饰和地毯店:ABC Carpet & Home
2017/06/21 全球购物
Merchant 1948澳大利亚:新西兰领先的鞋类和靴子供应商
2018/03/24 全球购物
英国领先的独立酒精饮料零售商:DrinkSupermarket
2021/01/13 全球购物
图书室管理制度
2014/01/19 职场文书
京剧自荐信
2014/01/26 职场文书
五心教育心得体会
2014/09/04 职场文书
2015年小学财务工作总结
2015/07/20 职场文书
学生会副主席竞选稿
2015/11/19 职场文书
django注册用邮箱发送验证码的实现
2021/04/18 Python
python基础之模块的导入
2021/10/24 Python