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 相关文章推荐
Search File Contents PHP 搜索目录文本内容的代码
Feb 21 PHP
php除数取整示例
Apr 24 PHP
PHP实现ftp上传文件示例
Aug 21 PHP
PHP+Ajax实时自动检测是否联网的方法
Jul 01 PHP
PHP实现文件上传与下载实例与总结
Mar 13 PHP
php函数传值的引用传递注意事项分析
Jun 25 PHP
php基于curl主动推送最新内容给百度收录的方法
Oct 14 PHP
Symfony2创建基于域名的路由相关示例
Nov 14 PHP
php 删除指定文件夹的实例讲解
Jul 25 PHP
PHP简单实现模拟登陆功能示例
Sep 15 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
php中get_object_vars()在数组的实例用法
Feb 22 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代码
2010/08/08 PHP
php传值赋值和传地址赋值用法实例分析
2015/06/20 PHP
PHP 读取大文件并显示的简单实例(推荐)
2016/08/12 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
PHP+Redis开发的书签案例实战详解
2019/07/09 PHP
Javascript里使用Dom操作Xml
2007/01/22 Javascript
google jQuery 引用文件,jQuery 引用地址集合(jquery 1.2.6至jquery1.5.2)
2011/04/24 Javascript
20条学习javascript的编程规范的建议
2014/11/28 Javascript
浅谈JavaScript事件的属性列表
2015/03/01 Javascript
JavaScript计算两个日期时间段内日期的方法
2015/03/16 Javascript
浅谈jQuery中setInterval()方法
2015/07/07 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
2016/04/21 Javascript
js实现京东轮播图效果
2017/06/30 Javascript
Vue中render函数的使用方法
2018/01/31 Javascript
Node.js Express安装与使用教程
2018/05/11 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
2018/06/29 Javascript
原生JS实现的自动轮播图功能详解
2018/12/28 Javascript
JavaScript函数定义方法实例详解
2019/03/05 Javascript
JavaScript手写数组的常用函数总结
2020/11/22 Javascript
python实现在windows服务中新建进程的方法
2015/06/30 Python
浅谈使用Python内置函数getattr实现分发模式
2018/01/22 Python
利用python将json数据转换为csv格式的方法
2018/03/22 Python
python实现狄克斯特拉算法
2019/01/17 Python
Python requests模块实例用法
2019/02/11 Python
解决Python设置函数调用超时,进程卡住的问题
2019/08/08 Python
对Django中内置的User模型实例详解
2019/08/16 Python
python使用建议与技巧分享(二)
2020/08/17 Python
详解CSS3 rem(设置字体大小) 教程
2017/11/21 HTML / CSS
逼真的HTML5树叶飘落动画
2016/03/01 HTML / CSS
跑鞋、网球鞋、网球拍、服装及装备:Holabird Sports
2016/09/19 全球购物
size?荷兰官方网站:英国高级运动鞋精品店
2020/07/24 全球购物
应用化学专业职业生涯规划书
2013/12/31 职场文书
艾滋病宣传活动总结
2014/05/08 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书
解决jupyter notebook启动后没有token的坑
2021/04/24 Python
浅谈Python项目的服务器部署
2021/04/25 Python