php+ajax实现异步上传文件或图片功能


Posted in PHP onJuly 18, 2017

本文为大家分享了ajax异步上传文件或图片功能的具体代码,供大家参考,具体内容如下

//html代码

<form enctype="multipart/form-data" id="upForm">
 <input type="file" name="file" ><br><br>
 <input type="button" value="提交">
</form>
<div class="picDis">
 <img src="" alt="">
</div>
//js代码

(':button').click(function(event) {
//formdata储存异步上传数据
 var formData = new FormData($('form')[0]);
 formData.append('file',$(':file')[0].files[0]);
 //坑点: 无论怎么传数据,console.log(formData)都会显示为空,但其实值是存在的,f12查看Net tab可以看到数据被上传了
 $.ajax({
  url:'formtest.php',
  type: 'POST',
  data: formData,
  //这两个设置项必填
  contentType: false,
  processData: false,
  success:function(data){
  console.log(data)
  var srcPath = data;
  console.log();
 //注意这里的路径要根据自己的储存文件的路径设置
  $('.picDis img').attr('src', '..'+srcPath);
  }
 })
 });

php:

<?php 

$upFile = $_FILES['file'];

/**
* 创建文件夹函数,用于创建保存文件的文件夹
* @param str $dirPath 文件夹名称
* @return str $dirPath 文件夹名称
*/
function creaDir($dirPath){
 $curPath = dirname(__FILE__);
 $path = $curPath.'\\'.$dirPath;
 if (is_dir($path) || mkdir($path,0777,true)) {
  return $dirPath;
 }
}

//判断文件是否为空或者出错
if ($upFile['error']==0 && !empty($upFile)) {
 $dirpath = creaDir('upload');
 $filename = $_FILES['file']['name'];
 $queryPath = './'.$dirpath.'/'.$filename;
 //move_uploaded_file将浏览器缓存file转移到服务器文件夹
 if(move_uploaded_file($_FILES['file']['tmp_name'],$queryPath)){
  echo $queryPath;
 }
}

 ?>

点击上传图片并发送后, 可以看到页面上显示出图片, 查看本地文件夹可以看到文件也已储存到服务器.

在客户端实现异步上传的关键在于FormData,关于这部分这里有详细介绍: FormData()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP面向对象学习笔记之二 生成对象的设计模式
Oct 06 PHP
解析如何用php screw加密php源代码
Jun 20 PHP
php使用sql数据库 获取字段问题介绍
Aug 12 PHP
php中filter函数验证、过滤用户输入的数据
Jan 13 PHP
PHP使用pcntl_fork实现多进程下载图片的方法
Dec 16 PHP
PIGCMS 如何关闭聊天机器人
Feb 12 PHP
前端必学之PHP语法基础
Jan 01 PHP
PHP弱类型的安全问题详细总结
Sep 25 PHP
浅谈PHP中try{}catch{}的使用方法
Dec 09 PHP
laravel框架 laravel-admin上传图片到oss的方法
Oct 13 PHP
php array 转json及java 转换 json数据格式操作示例
Nov 13 PHP
PHP命名空间(namespace)原理与用法详解
Dec 11 PHP
Joomla框架实现字符串截取的方法示例
Jul 18 #PHP
PHP新特性详解之命名空间、性状与生成器
Jul 18 #PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
Jul 18 #PHP
PHP基于XMLWriter操作xml的方法分析
Jul 17 #PHP
PHP基于DOMDocument解析和生成xml的方法分析
Jul 17 #PHP
PHP基于SimpleXML生成和解析xml的方法示例
Jul 17 #PHP
PHP实现限制IP访问及提交次数的方法详解
Jul 17 #PHP
You might like
Mysql和网页显示乱码解决方法集锦
2008/03/27 PHP
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
两种设置php载入页面时编码的方法
2014/07/29 PHP
ThinkPHP中ajax使用实例教程
2014/08/22 PHP
浅析PHP中strlen和mb_strlen的区别
2014/08/31 PHP
php获取百度收录、百度热词及百度快照的方法
2015/04/02 PHP
完美解决Thinkphp3.2中插入相同数据的问题
2017/08/01 PHP
PHP实现的二分查找算法实例分析
2017/12/19 PHP
JS中剪贴板兼容性、判断复制成功或失败
2021/03/09 Javascript
疯掉了,尽然有js写的操作系统
2007/04/23 Javascript
javascript 处理HTML元素必须避免使用的一种方法
2009/07/30 Javascript
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
document.getElementBy(&quot;id&quot;)与$(&quot;#id&quot;)有什么区别
2013/09/22 Javascript
JS实现程序暂停与继续功能代码解读
2013/10/10 Javascript
高效的获取当前元素是父元素的第几个子元素
2013/10/15 Javascript
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
JavaScript实现定时隐藏与显示图片的方法
2015/08/06 Javascript
轻松学习Javascript闭包函数
2015/12/15 Javascript
JavaScript代码性能优化总结篇
2016/05/15 Javascript
JavaScript实现的反序列化json字符串操作示例
2018/07/18 Javascript
深入理解Angularjs 脏值检测
2018/10/12 Javascript
在Express中提供静态文件的实现方法
2019/10/17 Javascript
[02:46]2014DOTA2国际邀请赛 选手为你解读比赛MVP充满梦想
2014/07/09 DOTA
python数据结构树和二叉树简介
2014/04/29 Python
Python实现从url中提取域名的几种方法
2014/09/26 Python
python中利用队列asyncio.Queue进行通讯详解
2017/09/10 Python
python顺序执行多个py文件的方法
2019/06/29 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
matplotlib 曲线图 和 折线图 plt.plot()实例
2020/04/17 Python
python中xlrd模块的使用详解
2021/02/01 Python
css3强大的动画效果animate使用说明及浏览器兼容介绍
2013/01/09 HTML / CSS
骨干教师培训感言
2014/01/16 职场文书
硕士生工作推荐信
2014/03/07 职场文书
学生评语大全
2014/04/18 职场文书
科长竞聘演讲稿
2014/05/16 职场文书
讲解MySQL增删改操作
2022/05/06 MySQL