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 相关文章推荐
关于Intype一些小问题的解决办法
Mar 28 PHP
深入理解PHP原理之Session Gc的一个小概率Notice
Apr 12 PHP
php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
Jul 31 PHP
Apache下禁止php文件被直接访问的解决方案
Apr 25 PHP
PHP动态页生成静态页的3种常用方法
Nov 13 PHP
php中数字、字符与对象判断函数用法实例
Nov 26 PHP
php实现高效获取图片尺寸的方法
Dec 12 PHP
详解WordPress开发中get_header()获取头部函数的用法
Jan 08 PHP
PHP错误机制知识汇总
Mar 24 PHP
浅谈PHP命令执行php文件需要注意的问题
Dec 16 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
Aug 01 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
Dec 12 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 和 XML: 使用expat函数(一)
2006/10/09 PHP
PHP中“简单工厂模式”实例代码讲解
2012/09/04 PHP
使用vs code编辑调试php配置的方法
2019/01/29 PHP
JS小框架 fly javascript framework
2009/11/26 Javascript
jquery中实现标签切换效果的代码
2011/03/01 Javascript
jquery根据name属性查找的小例子
2013/11/21 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
2014/05/05 Javascript
require.js深入了解 require.js特性介绍
2014/09/04 Javascript
JavaScript中模拟实现jsonp
2015/06/19 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
EditPlus中的正则表达式 实战(2)
2016/12/15 Javascript
基于Bootstrap table组件实现多层表头的实例代码
2017/09/07 Javascript
vue+vuex+axios+echarts画一个动态更新的中国地图的方法
2017/12/19 Javascript
JQuery animate动画应用示例
2019/05/14 jQuery
让IDE识别webpack的别名alias的实现方法
2020/05/06 Javascript
微信小程序通过websocket实时语音识别的实现代码
2020/08/19 Javascript
[48:53]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第一场
2014/05/26 DOTA
Python3通过Luhn算法快速验证信用卡卡号的方法
2015/05/14 Python
Python的GUI框架PySide的安装配置教程
2016/02/16 Python
一文带你了解Python中的字符串是什么
2018/11/20 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
python 实现在tkinter中动态显示label图片的方法
2019/06/13 Python
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
Tensorflow训练MNIST手写数字识别模型
2020/02/13 Python
Python命令行参数argv和argparse该如何使用
2021/02/08 Python
越南电子产品购物网站:FPT Shop
2017/12/02 全球购物
某公司部分笔试题
2013/11/05 面试题
个人自我评价和职业目标
2014/01/24 职场文书
企业精细化管理实施方案
2014/03/23 职场文书
抵押贷款承诺书
2014/05/30 职场文书
毕业生银行实习自我鉴定
2014/10/14 职场文书
英文慰问信
2015/02/14 职场文书
Python机器学习之基于Pytorch实现猫狗分类
2021/06/08 Python
Java反应式框架Reactor中的Mono和Flux
2021/07/25 Java/Android
mysql 获取时间方式
2022/03/20 MySQL