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修改时间格式的代码
May 29 PHP
PHP无法访问远程mysql的问题分析及解决
May 16 PHP
深入PHP中的HashTable结构详解
Jun 13 PHP
php jq jquery getJSON跨域提交数据完整版
Sep 13 PHP
WordPress中编写自定义存储字段的相关PHP函数解析
Dec 25 PHP
CodeIgniter记录错误日志的方法全面总结
May 17 PHP
Zend Framework基于Command命令行建立ZF项目的方法
Feb 18 PHP
通过源码解析Laravel的依赖注入
Jan 22 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
Sep 08 PHP
PHP 计算两个时间段之间交集的天数示例
Oct 24 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
Nov 26 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
Feb 26 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批量缩放图片的代码[ini参数控制]
2011/02/11 PHP
DOM基础及php读取xml内容操作的方法
2015/01/23 PHP
php去除html标记的原生函数详解
2015/01/27 PHP
PHP curl伪造IP地址和header信息代码实例
2015/04/27 PHP
HTML中嵌入PHP的简单方法
2016/02/16 PHP
PHP实现的简单AES加密解密算法实例
2017/05/29 PHP
js正确获取元素样式详解
2009/08/07 Javascript
客户端 使用XML DOM加载json数据的方法
2010/09/28 Javascript
判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
2013/11/07 Javascript
jQuery判断元素是否存在的可靠方法
2014/05/06 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
2016/10/10 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
2016/10/31 Javascript
详解vue-Resource(与后端数据交互)
2017/01/16 Javascript
基于JavaScript实现轮播图原理及示例
2020/04/10 Javascript
Angular2数据绑定详解
2017/04/18 Javascript
JS自定义滚动条效果简单实现代码
2020/10/27 Javascript
Javascript中的作用域及块级作用域
2017/12/08 Javascript
详解webpack中的hash、chunkhash、contenthash区别
2018/01/05 Javascript
AnglarJs中的上拉加载实现代码
2018/02/08 Javascript
layui弹出层按钮提交iframe表单的方法
2018/08/20 Javascript
Linux下编译安装MySQL-Python教程
2015/02/02 Python
Python制作简单的网页爬虫
2015/11/22 Python
Python中的条件判断语句基础学习教程
2016/02/07 Python
python使用Matplotlib绘制分段函数
2018/09/25 Python
网易2016研发工程师编程题 奖学金(python)
2019/06/19 Python
Python 实现OpenCV格式和PIL.Image格式互转
2020/01/09 Python
Expedia加拿大官方网站:加拿大最大的在线旅游提供商
2017/12/31 全球购物
澳大利亚墨尔本的在线时装店:LORETA
2018/09/14 全球购物
实习生自荐信范文
2013/11/13 职场文书
数学国培研修感言
2014/02/13 职场文书
感恩小明星事迹材料
2014/05/23 职场文书
2014年财务工作总结范文
2014/11/11 职场文书
奥巴马开学演讲观后感
2015/06/12 职场文书
经典爱情感言
2015/08/03 职场文书
Python多线程 Queue 模块常见用法
2021/07/04 Python