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 相关文章推荐
第十三节--对象串行化
Nov 16 PHP
PHP垃圾回收机制简单说明
Jul 22 PHP
洪恩在线成语词典小偷程序php版
Apr 20 PHP
说说PHP的autoLoad自动加载机制
Sep 27 PHP
php5.3不能连接mssql数据库的解决方法
Dec 27 PHP
PHP语法小结之基础和变量
Nov 22 PHP
详解WordPress开发中get_header()获取头部函数的用法
Jan 08 PHP
PHP的Yii框架中过滤器相关的使用总结
Mar 29 PHP
php获取用户真实IP和防刷机制的实例代码
Nov 28 PHP
Yii2.0框架模型多表关联查询示例
Jul 18 PHP
laravel实现查询最后执行的一条sql语句的方法
Oct 09 PHP
laravel添加前台跳转成功页面示例
Oct 22 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
实用函数10
2007/11/08 PHP
浅析ThinkPHP中execute和query方法的区别
2014/06/13 PHP
PHP生成等比缩略图类和自定义函数分享
2014/06/25 PHP
Yii 2.0如何使用页面缓存方法示例
2017/05/23 PHP
PHP7新特性
2021/03/09 PHP
有关于JS辅助函数inherit()的问题
2013/04/07 Javascript
Javascript自定义排序 node运行 实例
2013/06/05 Javascript
用html5 js实现点击一个按钮达到浏览器全屏效果
2014/05/28 Javascript
JQuery入门基础小实例(1)
2015/09/17 Javascript
基于jquery实现表格无刷新分页
2016/01/07 Javascript
浅谈jquery中的each方法$.each、this.each、$.fn.each
2016/06/23 Javascript
ES6概念 Symbol toString()方法
2016/12/25 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
easyUI combobox实现联动效果
2017/01/17 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
微信小程序 Buffer缓冲区的详解
2017/07/06 Javascript
在vue中封装可复用的组件方法
2018/03/01 Javascript
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
基于python中的TCP及UDP(详解)
2017/11/06 Python
python批量下载网站马拉松照片的完整步骤
2018/12/05 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
2019/04/28 Python
利用pandas将非数值数据转换成数值的方式
2019/12/18 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
2020/03/03 Python
Python实现画图软件功能方法详解
2020/07/28 Python
《陋室铭》教学反思
2014/02/26 职场文书
基层党组织建设整改方案
2014/09/16 职场文书
2014年学校法制宣传日活动总结
2014/11/01 职场文书
归途列车观后感
2015/06/17 职场文书
庆七一晚会主持词
2015/06/30 职场文书
2016年小学教师政治学习心得体会
2016/01/23 职场文书
2019最新企业员工考勤管理制度(通用版)!
2019/07/02 职场文书
Python Pandas pandas.read_sql_query函数实例用法分析
2021/06/21 Python
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL
MYSQL如何查看操作日志详解
2022/05/30 MySQL