<!--测试页面-->

<html>
<head><script>var files;var url = "/upp_w_picpath/3g_xhr.php";function getPath(fileQuery){var i;files =fileQuery.files;var imgContainer=document.getElementById("imgPanel");for(i=0;i<files.length;i++){var reader = new FileReader();var  filename=files[i].name;reader.onload =(function(filename){return function(e){var obj=document.createElement("tr");obj.innerHTML="<td><img title='"+filename+"' src='"+e.target.result+"' style='width:100;height:100;' /></td><td " +" style='vertical-align:bottom;'>"+filename+"</td>";imgContainer.appendChild(obj);};})(filename);reader.readAsDataURL(files[i]);}}function getvl(obj){getPath(obj);}function submitImg(){for(var j=0;j<files.length;j++){var xhr = new XMLHttpRequest ();xhr.onreadystatechange = function () {if (xhr.readyState == 4) {if ((xhr.status >= 200 && xhr.status < 300)|| xhr.status == 304)               //200:Success.304:Tell browser to read cache.{alert(xhr.responseText);}}}var boundary = "------" + new Date () .getTime ();xhr.open ("post", url, true );var formData = new FormData ();formData.append("name", "nik22"); formData.append ("upfile", files[j]);xhr.send (formData);}}</script>
</head>
<body><form enctype="multipart/form-data" action="" method="post"id="upform"><div id="text" style="color:#f00;"></div>选择图片:<input type="file" name="upfile[]" id="upfile"  multiple="multiple" οnchange="getvl(this)" /><table id="imgPanel"></table><input type="button" value="上传" /></form>
</body>
</html>

<!--upp_w_picpath/3g_xhr.php-->

<?phpecho "No. files uploaded : ".count($_FILES['upfile']['name'])."<br>";$uploadDir = "p_w_picpaths_xhr/";/**for ($i = 0; $i < count($_FILES['upfile']['name']); $i++) {echo "File names : ".$_FILES['upfile']['name'][$i]."<br>";$ext = substr(strrchr($_FILES['upfile']['name'][$i], "."), 1);// generate a random new file name to avoid name conflict$fPath = md5(rand() * time()) . ".$ext";echo "File paths : ".$_FILES['upfile']['tmp_name'][$i]."<br>";$result = move_uploaded_file($_FILES['upfile']['tmp_name'][$i],$uploadDir . $fPath);if (strlen($ext) > 0){echo "Uploaded ". $fPath ." succefully. <br>";}}echo "Upload complete.<br>"*/if($_FILES['upfile']['size'] == 0)die("<script>alert('请选择您要上传的图片!');history.go(-1);</script>");$p_w_picpathinfo = getp_w_picpathsize($_FILES['upfile']['tmp_name']);if($p_w_picpathinfo[0] > 1200 || $p_w_picpathinfo[1] > 800)die("<script>alert('图片大小不符合标准(长1200宽800)!');history.go(-1);</script>");if($p_w_picpathinfo[2] < 1 || $p_w_picpathinfo[2] > 3)die("<script>alert('图片只能是GIF,JPG,PNG格式!');history.go(-1);</script>");//$p_w_picpathinfo[2] 的值得于1,表示是gif格式, 2是jpg格式,3是pngif($p_w_picpathinfo[2] == 1){$p_w_picpathinfo[2] = ".gif";}elseif($p_w_picpathinfo[2] == 2){$p_w_picpathinfo[2] = ".jpg";}else{$p_w_picpathinfo[2] = ".png";}//文件名:把时间和文件名的md5值组合,加上后缀得到文件名。$randval = rand();$imgname = date("YmdHis").substr(md5($randval),0,5).$p_w_picpathinfo[2];copy($_FILES['upfile']['tmp_name'],  $uploadDir.$imgname) or die("move img error!");echo "Upload succefully.<br>";
?>

注:1)上面的php文件放到文件夹upp_w_picpath下,同时在php所在文件夹新建文件夹p_w_picpaths_xhr,用于存

放上传的图片;

2)如果不通过ajax上传图片,那么将html页面中的form的action设置为/upp_w_picpath/3g_xhr.php,

提交按钮的type设置为submit,同时将php文件中的注释的那段去掉注释,同时将它后面的代码

注释掉,就可以实现同时提交多个图片。

转载于:https://blog.51cto.com/woodpecker/1352780

multiple多图选择,借助FormData通过ajax实现上传相关推荐

  1. html5 ajax 文件上传,html5+FormData 实现ajax文件上传

    大家都知道在html4时代,上传只能使用表单post提交方式,无法使用ajax(XMLHttpRequest )直接进行表单提交.但在HTML 5的概念形成后,W3C开始考虑标准化XMLHttpReq ...

  2. 点击button按钮打开file选择图片并使用ajax图片上传并预览

    最近有个需求让人很无奈,每条记录都需要让用户上传图片.由于使用插件无法准确的定位到那条记录,只好使用ajax上传图片准确获取id 先将file文件隐藏掉,通过点击button打开file选择图片,一些 ...

  3. 使用FormData进行Ajax请求上传文件

    Servlet3.0开始提供了一系列的注解来配置Servlet.Filter.Listener等等.这种方式可以极大的简化在开发中大量的xml的配置.从这个版本开始,web.xml可以不再需要,使用相 ...

  4. ashx获取input file 文件_通过Ajax方式上传文件(input file),使用FormData进行Ajax请求...

    一直以来上传文件都使用的是别人的组件,今天看下无刷新上传内部具体的做法.上传文件可以使用form的形式来上传,也可以通过构造formData使用ajax来上传文件: 上传图片 $(function ( ...

  5. ssm使用Ajax的formData进行异步图片上传返回图片路径,并限制格式和大小

    之前整理过SSM的文件上传,这次直接用代码了. 前台页面和js //form表单<form id= "uploadForm" enctype="multipart/ ...

  6. koa2:通过Ajax方式上传文件,使用FormData进行Ajax请求

    koa2通过表单上传的网上很多,但通过Ajax方式上传文件,使用FormData进行Ajax请求,不好找. 参考了这个用base64上传图片的例子.https://github.com/Yuki-Mi ...

  7. ajax文件上传data,ajax文件上传-FormData()

    HTML: JS: $("input[type='button']").on('click', upfile); /** * [upfile 文件上传] * @return {[O ...

  8. ORM中的事务和锁、Ajax异步请求和局部刷新、Ajax文件上传、日期时间类型的Json、多表查询图书系统

    一.ORM中的事务和锁 事务 事务要确保原子性 """ 事务ACID原子性:不可分隔的最小单位一致性:跟原子性是相辅相成隔离性:事务之间相互不干扰持久性:事务一旦确认永久 ...

  9. PHP + ajax 实现上传进度条、PHP 上传大视频

    一.PHP + ajax 实现上传进度条 1.1 CSS 样式 根据自身调整哦! .processBar{display: inline-block;width: 0;height: 7px;left ...

  10. ajax实现上传文件的进度,基于Ajax技术实现文件上传带进度条

    1.概述 在实际的Web应该开发或网站开发过程中,经常需要实现文件上传的功能.在文件上传过程中,经常需要用户进行长时间的等待,为了让用户及时了解上传进度,可以在上传文件的同时,显示文件的上传进度条.运 ...

最新文章

  1. Webpack 4 + React + Typescript 搭建启动模版
  2. python手机版打了代码运行不了-android手机安装python并写代码运行
  3. python从低到高排序_使用python对matplotlib直方图中的xaxis值从最低值到最高值排序...
  4. MySQL【案例讲解】分组查询
  5. 最短路(遍历边)计蒜客—DD坐地铁
  6. [html] 说说你对HTML元素的显示优先级的理解
  7. Laravel-数据库队列
  8. Premiere教程,认识 Pr 以及电脑配置
  9. Spring的单例模式底层实现
  10. 商业软件太贵?找开源替代品
  11. 磁共振成像原理-物理基础(质子在外部磁场的情况)
  12. #Linux中的GCC编程# 20170731 C培训作业
  13. linux 验证码 权限,linux 上验证码无法显示
  14. 三端稳压管反向击穿情况及分析与防护措施
  15. 计算机老师为什么不用伽卡他卡做文件服务器?
  16. [MongoDB] 运维相关操作记录
  17. 多搜 - 多个网站一起搜 (舆情监控版)
  18. sql server获取库名,表名
  19. 【数字图像处理】Python使用PIL库压缩图片大小——按比例压缩
  20. 腾讯云互动直播SDK集成综述

热门文章

  1. ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memor
  2. 【面向代码】学习 Deep Learning(二)Deep Belief Nets(DBNs)
  3. 实现类去实现接口的时候,将接口的注释一起重写出来设置
  4. android10LTE,Jelly 2:全球最小的Android 10 4G智能手机
  5. python程序化设计正则表达式语法_基于python的正则表达式学习笔记
  6. linux双机热备份
  7. 【AMAD】django-compressor -- 将JS和CSS文件压缩为一个缓存文件
  8. python 快速排序的实现
  9. scipy 安装错误及解决
  10. 电脑安装系统安装不上的几个问题(解决)