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 相关文章推荐
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
May 04 PHP
PHP 函数call_user_func和call_user_func_array用法详解
Mar 02 PHP
浅谈php扩展imagick
Jun 02 PHP
php自动识别文件编码并转换为UTF-8的方法
Jun 12 PHP
YII路径的用法总结
Jul 09 PHP
PHP中JSON的应用技巧
Oct 10 PHP
php session 写入数据库
Feb 13 PHP
php获取给定日期相差天数的方法分析
Feb 20 PHP
php删除二维数组中的重复值方法
Mar 12 PHP
laravel中的fillable和guarded属性详解
Oct 23 PHP
PHP date_default_timezone_set()设置时区操作实例分析
May 16 PHP
php使用自带dom扩展进行元素匹配的原理解析
May 29 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 curl模拟浏览器采集阿里巴巴的实现代码
2011/04/20 PHP
php学习之流程控制实现代码
2011/06/09 PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
2014/10/31 PHP
php截取字符串函数分享
2015/02/02 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
win10下 php安装seaslog扩展的详细步骤
2020/12/04 PHP
javascript cookies 设置、读取、删除实例代码
2010/04/12 Javascript
深入了解javascript中的prototype与继承
2013/04/14 Javascript
js调试工具console.log()方法查看js代码的执行情况
2014/08/08 Javascript
jQuery CSS()方法改变现有的CSS样式
2014/08/20 Javascript
详解jQuery lazyload 懒加载
2016/12/19 Javascript
js实现水平滚动菜单导航
2017/07/21 Javascript
Angular 5.0 来了! 有这些大变化
2017/11/15 Javascript
node.js部署之启动后台运行forever的方法
2018/05/23 Javascript
Angular刷新当前页面的实现方法
2018/11/21 Javascript
js中数组对象去重的两种方法
2019/01/18 Javascript
详解如何理解vue的key属性
2019/04/14 Javascript
微信小程序实现打卡签到页面
2020/09/21 Javascript
[06:48]DOTA2-DPC中国联赛2月26日Recap集锦
2021/03/11 DOTA
在Python中使用swapCase()方法转换大小写的教程
2015/05/20 Python
Python 实现选择排序的算法步骤
2018/04/22 Python
在Python 中实现图片加框和加字的方法
2019/01/26 Python
python zip()函数使用方法解析
2019/10/31 Python
CSS3 选择器 伪类选择器介绍
2012/01/21 HTML / CSS
Derek Rose官网:英国高档睡衣、家居服和内衣品牌
2020/01/18 全球购物
应用化学专业职业生涯规划书
2013/12/31 职场文书
金融管理应届生求职信
2014/02/20 职场文书
投资合作协议书范本
2014/04/17 职场文书
物业公司的岗位任命书
2014/06/06 职场文书
就业协议书
2014/09/12 职场文书
党支部群众路线整改措施思想汇报
2014/10/10 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
普希金的诗歌赏析(3首)
2019/08/20 职场文书
JavaScript 对象创建的3种方法
2021/11/17 Javascript
实战Python爬虫爬取酷我音乐
2022/04/11 Python
使用Apache Camel表达REST服务的方法
2022/06/10 Servers