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&amp;&amp;mysql)六
Oct 09 PHP
怎样在UNIX系统下安装php3
Oct 09 PHP
PHP中数组的三种排序方法分享
May 07 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
Jul 01 PHP
ThinkPHP验证码使用简明教程
Mar 05 PHP
Yii安装与使用Excel扩展的方法
Jul 13 PHP
Yii框架创建cronjob定时任务的方法分析
May 23 PHP
PHP给前端返回一个JSON对象的实例讲解
May 31 PHP
laravel-admin自动生成模块,及相关基础配置方法
Oct 08 PHP
laravel实现上传图片并在页面显示的例子
Oct 14 PHP
TP5框架使用QueryList采集框架爬小说操作示例
Mar 26 PHP
PHPExcel实现的读取多工作表操作示例
Apr 14 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路由类
2016/05/29 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
2019/10/18 PHP
window.open的功能全解析
2006/10/10 Javascript
Ext JS Grid在IE6 下宽度的问题解决方法
2009/02/15 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
js中判断对象是否为空的三种实现方法
2013/12/23 Javascript
JavaScript改变CSS样式的方法汇总
2015/05/07 Javascript
javascript中select下拉框的用法总结
2016/01/07 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
2016/06/17 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
BootStrapTable 单选及取值的实现方法
2017/01/10 Javascript
JS实现图片预览的两种方式
2017/06/27 Javascript
DataTables添加额外的查询参数和删除columns等无用参数实例
2017/07/04 Javascript
详解在Angular4中使用ng2-baidu-map的方法
2019/06/19 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
2020/12/01 Vue.js
在MAC上搭建python数据分析开发环境
2016/01/26 Python
Python递归函数定义与用法示例
2017/06/02 Python
python实现图书馆研习室自动预约功能
2018/04/27 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
2019/05/13 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
Django实现前台上传并显示图片功能
2020/05/29 Python
Python基于traceback模块获取异常信息
2020/07/23 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
CSS3中引入多种自定义字体font-face
2020/06/12 HTML / CSS
谈一谈HTML5本地存储技术
2016/03/02 HTML / CSS
大二法英学生职业生涯规划范文
2014/02/27 职场文书
护士岗前培训自我评鉴
2014/02/28 职场文书
工程项目建议书范文
2014/03/12 职场文书
水毁工程实施方案
2014/04/01 职场文书
保护环境倡议书范文
2014/05/13 职场文书
优秀班主任事迹材料
2014/12/16 职场文书
2015年司法局工作总结
2015/05/22 职场文书
2016师德师风学习心得体会
2016/01/12 职场文书
Python机器学习之KNN近邻算法
2021/05/14 Python
解决Redis启动警告问题
2022/02/24 Redis