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数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
Oct 31 PHP
比file_get_contents稳定的curl_get_contents分享
Jan 11 PHP
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
Sep 23 PHP
php获取目录所有文件并将结果保存到数组(实例)
Oct 25 PHP
php中的filesystem文件系统函数介绍及使用示例
Feb 13 PHP
php实现模拟post请求用法实例
Jul 11 PHP
PHP实现二维数组按某列进行排序的方法
Nov 18 PHP
浅谈Laravel POST,PUT,PATCH 路由的区别
Oct 15 PHP
php文件上传原理与实现方法详解
Dec 20 PHP
YII2框架中日志的配置与使用方法实例分析
Mar 18 PHP
PHP 实现 JSON 数据的编码和解码操作详解
Apr 22 PHP
PHP策略模式写法
Apr 01 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
2019年中国咖啡业现状与发展趋势
2021/03/04 咖啡文化
理解php Hash函数,增强密码安全
2011/02/25 PHP
php实现高效获取图片尺寸的方法
2014/12/12 PHP
php实现URL加密解密的方法
2016/11/17 PHP
PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
2017/06/20 PHP
PHP实现会员账号单唯一登录的方法分析
2019/03/07 PHP
jquery的颜色选择插件实例代码
2008/10/02 Javascript
createElement动态创建HTML对象脚本代码
2008/11/24 Javascript
基于jquery的15款幻灯片插件
2011/04/10 Javascript
给artDialog 5.02 增加ajax get功能详细介绍
2012/11/13 Javascript
Jquery实现自定义tooltip示例代码
2014/02/12 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
AngularJS遍历获取数组元素的方法示例
2017/11/11 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
2018/12/07 Javascript
JS判断数组里是否有重复元素的方法小结
2019/05/21 Javascript
小程序click-scroll组件设计
2019/06/18 Javascript
微信小程序基于Taro的分享图片功能实践详解
2019/07/12 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
2019/08/01 Javascript
[01:47]2018年度DOTA2最具人气解说-完美盛典
2018/12/16 DOTA
python使用内存zipfile对象在内存中打包文件示例
2014/04/30 Python
基于python元祖与字典与集合的粗浅认识
2017/08/23 Python
Python内置函数 next的具体使用方法
2017/11/24 Python
一看就懂得Python的math模块
2018/10/21 Python
Python使用循环神经网络解决文本分类问题的方法详解
2020/01/16 Python
Python实现企业微信机器人每天定时发消息实例
2020/02/25 Python
Python3 selenium 实现QQ群接龙自动化功能
2020/04/17 Python
Python Django路径配置实现过程解析
2020/11/05 Python
如何通过Python实现RabbitMQ延迟队列
2020/11/28 Python
HTML5离线缓存Manifest是什么
2016/03/09 HTML / CSS
Shopee印度尼西亚:东南亚与台湾市场最大电商平台
2018/06/17 全球购物
数控技术应用个人求职信范文
2014/02/03 职场文书
党员对照检查材料思想汇报(党的群众路线)
2014/09/24 职场文书
党性分析材料格式
2014/12/19 职场文书
Mysql MVCC机制原理详解
2021/04/20 MySQL
Android Canvas绘制文字横纵向对齐
2022/06/05 Java/Android