php+js实现异步图片上传实例分享

2015-01-24信息快讯网

本来想用插件上传图片的,后来自己写了一个简单的js实现异步的图片上传,不多说上代码非常简单

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>

Thinkphp中数据按分类嵌套循环实现方法
Thinkphp将二维数组变为标签适用的一维数组方法总结
ThinkPHP模板中数组循环实例
用 Composer构建自己的 PHP 框架之使用 ORM
用 Composer构建自己的 PHP 框架之设计 MVC
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
PHP多个文件上传到服务器实例
smarty中js的调用方法示例
PHP制作3D扇形统计图以及对图片进行缩放操作实例
php实现给图片加灰色半透明效果的方法
PHP图片自动裁切应付不同尺寸的显示
PHP中使用Session配合Javascript实现文件上传进度条功能
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
php保存二进制原始数据为图片的程序代码
php json_encode()函数返回json数据实例代码
php返回json数据函数实例
PHP fastcgi模式上传大文件(大约有300多K)报错
php中json_encode UTF-8中文乱码的更好解决方法
php使用$_POST或$_SESSION[]向js函数传参
php实现文件下载实例分享
php实例分享之html转为rtf格式
php 伪静态之IIS篇
php伪静态之APACHE篇
50个PHP程序性能优化的方法
浅谈php扩展imagick
php5.2以下版本无json_decode函数的解决方法
浅析php中json_encode()和json_decode()
PHP+Mysql+Ajax+JS实现省市区三级联动
PHP小技巧之JS和CSS优化工具Minify的使用方法
ThinkPHP使用心得分享-上传类UploadFile的使用
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
php使用正则过滤js脚本代码实例
PHP图片裁剪函数(保持图像不变形)
PHP判断远程图片是否存在的几种方法
PHPThumb图片处理实例
php环境无法上传文件的解决方法
php+js iframe实现上传头像界面无跳转
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
PHP正则提取不包含指定网址的图片地址的例子
php实现上传图片生成缩略图示例
©2014-2024 dbsqp.com