文件读取

javascript

绑定文件上传变化事件 onchange

利用window对象 FileReader

  • 调用方法 readerAsDataURL

    • onload 方法 异步读取
  • 属性:files
    • 获取到上传的文件 files[0]

        <form action="***.php" method="post" enctype="multipart/form-data" >
      <input type="file" name="img" id="pic" multiple>
      <img src="javascript:;" alt="">
      </form>
      <script>
      var pic = document.querySelector('#pic');
      pic.onchange = function() { //多文件同时显示
      for (var i = 0; i < pic.files.length; i++) {
      var reader = new FileReader();
      reader.readAsDataURL(pic.files[i]);
      reader.onload = function(e) {
      var img = document.createElement('img');
      document.querySelector('form').appendChild(img);
      img.src = e.target.result;
      }
      }
      }
      </script>

php

form表单设置 metho='post' enctype="multipart/form-data'

  • 前端

    ```

```
* 后端
* 单文件上传
* 多文件上传
* 单文件上传的判断条件 `封装`

            function judge($files, $url,$i) {
// mime类型判断
$fileinfo = finfo_open(FILEINFO_MIME_TYPE);
$fileResult = finfo_file($fileinfo, $files['tmp_name']);
// 假设是相册判断
$type = strchr($fileResult, '/', true);
if ($type == 'image') {
echo '文件类型符合';
}
//文件上传达到各类要求
if ($files['error'] == 0 && is_uploaded_file($files['tmp_name'])) {
// 给上传文件重新取名
$str = strrchr($files['name'], '.');
$newPath = $url.date('YmdHis-').mt_rand(100, 999).$str;
if (move_uploaded_file($files['tmp_name'], $newPath)) {
echo '上传成功';
} else {
echo $files[$i]['name'].'上传失败';
}
}
}
* 数组降维 这个每个里面都已经是单个文件的所有信息,可以调用方法进行判断 $newArr = [];
foreach($file as $k => $v) {
foreach($v as $key => $value) {
$newArr[$key][$k] = $value;
}
}

总结:

  • php 和 JavaScript 的一些功能相当类似

文件上传及时显示, 前端js和后端php相互结合使用的更多相关文章

  1. 【原创】用JAVA实现大文件上传及显示进度信息

    用JAVA实现大文件上传及显示进度信息 ---解析HTTP MultiPart协议 (本文提供全部源码下载,请访问 https://github.com/grayprince/UploadBigFil ...

  2. Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现)(转)

    Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现) 相信通过Asp.Net的服务器控件上传文件在简单不过了,通过AjaxToolkit控件实现上传进度也不是什么难事,为什么还要自己辛辛苦 ...

  3. silverlight漂亮的文件上传进度显示原理及示例

    silverlight漂亮的文件上传进度显示原理及示例 作者:chenxumi 出处:博客园  2009/11/27 13:37:11 阅读 1219  次 概述:在网站根目录web.config里配 ...

  4. 用JAVA实现大文件上传及显示进度信息

    一. 大文件上传基础描述: 各种WEB框架中,对于浏览器上传文件的请求,都有自己的处理对象负责对Http MultiPart协议内容进行解析,并供开发人员调用请求的表单内容. 比如: Spring 框 ...

  5. Asp.Net 无刷新文件上传并显示进度条的实现方法及思路

    相信通过Asp.Net的服务器控件上传文件在简单不过了,通过AjaxToolkit控件实现上传进度也不是什么难事,为什么还要自己辛辛苦苦来 实现呢?我并不否认”拿来主义“,只是我个人更喜欢凡是求个所以 ...

  6. 体验三大JavaScript文件上传库(Uppy.js/Filepond/Dropzone)

    最近发现了一个高颜值的前端上传组件Uppy.js,立即上手体验了一波,感觉还不错.然后又看到同类型的Filepond以及Dropzone.js,对比体验了一下,感觉都很优秀,但是在体验过程中,都遇到了 ...

  7. 文件上传下载显示进度(vue)

    编写了一个vue组件,可以实时显示文件上传和下载时候的进度 <template> <div v-show="circleProgress_wrapper_panel_sta ...

  8. JQuery文件上传插件JQuery.upload.js的用法简介

    JQuery文件上传插件,这个插件很小,用法很简单,效果却很棒.注意:JQuery版本要求1.8及以上,大家执行如果没效果,则检查JQuery版本,如果是1.8及以上,则该插件源码中的.size()需 ...

  9. 阿里云 oss 小文件上传进度显示

    对阿里云OSS上传小文件时的进度,想过两个方法:一是.通过多线程监測Inputstream剩余的字节数来计算,可是由于Inputstream在两个线程中共用,假设上传线程将Inputstream关闭, ...

随机推荐

  1. XDU 1003 B进制加法(高精度)

    #include<bits/stdc++.h> using namespace std; long long mpow(long long a,long long b) { ; ) ; w ...

  2. 字符编码的发展(ASCII、Unicode、utf-8)

    最近一直在看廖雪峰老师的python网上教程,python内容简单易理解,就没整理,但是字符串编码作为一直困扰自己的问题,看了几遍文章,最终还是将其整理如下,本篇博客总结自廖雪峰老师的网上教程:htt ...

  3. python requests的使用说明

    #GET参数实例 requests.get('http://www.dict.baidu.com/s', params={'wd': 'python'}) #或 url = 'http://www.b ...

  4. ONVIF学习-ONVIF开发框架搭建(C++)

    第一步.下载gsoap 从gsoap官网(http://www.genivia.com/products.html#notice)下载最新版gsoap(博主用的是gsoap_2.8.45).gsoap ...

  5. 关于Mvc的分页写法

    关于asp.net mvc的分页,网上已经有很多了.本来也想借用,先看了杨涛写的分页控件,感觉用起来稍微有点复杂,而我只需要简单的分页.分页我写过很多次,原理也熟悉,就是构造首页.上一页.下一页及末页 ...

  6. 20145307第七周JAVA学习报告

    20145307<Java程序设计>第七周学习总结 教材学习内容总结 Lambda Lambda语法概述: Arrays的sort()方法可以用来排序,在使用sort()时,需要操作jav ...

  7. 20144303《Java程序设计》第10周学习总结

    20144303<Java程序设计>第10周学习总结 教材学习内容总结 网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程 ...

  8. 20135320赵瀚青LINUX第五周学习笔记

    赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 按照刘老师的周从三个角 ...

  9. 戴尔服务器使用omreport(OMSA)查看监控硬件信息

    安装OMSA wget -q -O - http://linux.dell.com/repo/hardware/latest/bootstrap.cgi | bash yum install -y n ...

  10. 设置iframe内表单target属性以兼容IE、Firefox【转载】

    设置iframe内表单target属性以兼容IE.Firefox[转载] 2011年11月19日 haibor       今天有客户反应,在一产品网站的资源下载页面,用户登录提交后页面无反应! 经测 ...