宿迁腾云网络网站建设公司

腾云网络 八年经验专注网站建设
  • 首页
  • 服务项目
    • 网站建设
    • 微信小程序
    • APP开发
    • SEO优化
  • 建站费用
  • 成功案例
    • 网站建设案例
    • 小程序案例
    • APP开发案例
    • SEO优化案例
  • 行业动态
    • 网站建设
    • SEO优化
    • 技术日志
  • 联系我们
    • 关于我们
首页 > 行业动态 > 技术日志 > php上传多张图片代码服务端代码使用PHP编写文件上传的几种方式-事业家庭php ajax图片上传代码

php上传多张图片代码服务端代码使用PHP编写文件上传的几种方式-事业家庭php ajax图片上传代码

2022-04-27

首先祝大家端午节快乐!事业和家庭更上一层楼。 !

最近遇到一个100M大文件的上传需求,研究了七牛和腾讯云的分片分片上传功能。所以这里整理了前端大文件上传相关功能的实现。

在一些业务中,上传大文件是一个比较重要的交互场景,比如导入库比较大的表数据,上传视频音频文件等等。如果文件比较大,或者网络条件不好,上传时间会比较长(需要传输的包比较多,丢包重传的概率也比较大),用户无法刷新页面,只能耐心等待请求完成。 .

下面先从文件上传方法说起,整理上传大文件的思路,并给出相关示例代码。由于PHP内置了方便的文件拆分和拼接方法,所以服务器端代码都是用PHP编写的。

上传文件的几种方式

首先,我们来看看上传文件的几种方式。

普通表单上传

使用 PHP 显示常规表单上传是一个不错的选择。首先构建一个用于文件上传的表单,并将表单的提交内容类型指定为“/form-data”,表示该表单需要上传二进制数据。




然后编写.php上传文件接收代码,使用方法(php大法好...)


$imgName = 'IMG'.time().'.'.str_replace('image/','',$_FILES["myfile"]['type']);

$fileName = 'upload/'.$imgName;

// 移动上传文件至指定upload文件夹下,并根据返回值判断操作是否成功

if (move_uploaded_file($_FILES['myfile']['tmp_name'], $fileName)){

 echo $fileName;

}else {

 echo "nonn";

}



在表单上传大文件时,很容易遇到服务器超时的问题。通过xhr,前端也可以异步上传文件。一般有两种思路。

文件编码上传

第一个想法是对文件进行编码php上传多张图片代码,然后在服务器上对其进行解码。主要实现原理是将图片转换为传输。


var imgURL = URL.createObjectURL(file);

ctx.drawImage(imgURL, 0, 0);

// 获取图片的编码,然后将图片当做是一个很长的字符串进行传递

var data = canvas.toDataURL("image/jpeg", 0.5);



服务器端需要做的比较简单,先解码再保存图片


$imgData = $_REQUEST['imgData'];

$base64 = explode(',', $imgData)[1];

$img = base64_decode($base64);

$url = './test.jpg';

if (file_put_contents($url, $img)) {

 exit(json_encode(array(

 url => $url

 )));

}



编码的缺点是它的体积比原图大(因为三个字节转换成四个字节,编码后的文字会比原图大三分之一左右),对于体积。对于大文件,上传和解析时间会显着增加。

除了编码之外,还可以在前端直接读取文件内容后以二进制格式上传


// 读取二进制文件

function readBinary(text){

 var data = new ArrayBuffer(text.length);

 var ui8a = new Uint8Array(data, 0);

 for (var i = 0; i < text.length; i++){ 

 ui8a[i] = (text.charCodeAt(i) & 0xff);

 }

 console.log(ui8a)

}

var reader = new FileReader();

reader.onload = function(){

readBinary(this.result) // 读取result或直接上传

}

// 把从input里读取的文件内容,放到fileReader的result字段里

reader.readAsBinaryString(file);



异步上传

主要用于组装一组用于发送请求的键/值对,可以更灵活的发送Ajax请求。可用于模拟表单提交。


let files = e.target.files // 获取input的file对象

let formData = new FormData();

formData.append('file', file);

axios.post(url, formData);



服务端处理方式与直接表单请求基本相同。

没有页面刷新

在低版本浏览器(如IE)上,xhr不支持直接上传,所以只能使用form上传文件,而form提交本身会进行页面跳转,这是由form的属性造成的形式。 ,其值为

如果需要让用户体验异步上传文件的感觉,可以指定。将表单的属性设置为不可见,则返回的数据将被此接受网站模板,


Tag: 文件上传 ajax 传照片
网站制作公众号

宿迁腾云网络网站建设公司 | 网站开发 | 网站制作 | 网站优化

咨询电话:13160355545

上一篇

返回栏目

下一篇

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。

热推

  • php高级程序设计_模式,框架与测试用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象php高级程序设计模式,框架与测试pdf
  • 版本控制变更影响的管理
  • 简单php论坛开发定要网站建设需要的流程有哪些?-八维教育php实现简单论坛
  • php ldap 扩展下载 一下安装php-m检查一下是否安装成功哦方法把
  • 开源php erp管理系统大型项目领域中的项目管理方法-你并不知道什么更昂贵中文开源erp系统
  • MITLab编程语言排行榜榜单Top10指数走势及说明
  • php开发一下用java和php的区别,大家知道它们最大区别php blog开发视频
  • 怎样知道开源b2c商城系统是不是开源?(图)
  • php刷新当前网页的代码PHP解释型语言来说什么优化的方案?|PHP课堂网页js自动刷新代码
  • php框架排行 2021年我们可以再来老生常谈一下php语言,PHP语言一直以来都存在各种争议php框架 教程

相关

php常用框架 3.适合用于中小项目的开发缺点对Ajax的

php实现单点登录原理生命科学>技术>>产品CRM套件实现互

php实现单点登录原理生命科学>技术>>产品CRM套件实现互

php刷新当前网页的代码PHP解释型语言来说什么优化的方案?

php网页计数器代码建设一个好的网站需要一个庞大的企业网站建

php上传图片代码编辑 图片上传的整个流程我们都准备好了(图

原生phpajax推荐活动:更多写博客关于原生AJAX和的编

本文用户登录的简单点赞功能,主要使用了Ajax,配置

PHP开发框架一览表:表示框架是否内建Ajax支持

php网站不能播放flash一个开源浏览器扩展插件「模拟浏览

php代码在线格式化工具1.解析文件上传漏洞与开发语言无关的

标签

seo(1182) 市场营销(661) 网站制作(573) 网站建设(564) 搜索引擎(553) 网站(482) PHP(361) 编程语言(345) 建站(294) 关键词排名优化(267) 网站建设公司(245) 优化(216) seo排名(207) 域名(190) 软件(171) 网站优化(148) 搜索引擎优化(146) 外链(141) 科技(136) 网站关键词(124) 网站排名优化(123) 域名服务器(120) 网站排名(107) 时政(103) 排名优化(95) 搜索引擎收录(93) 网站设计(92) 电子商务(88) 引擎(86) 移动互联网(85) 开发框架(79) 开发(75) 网站服务器(74) 框架(68) 前端开发(68) 网站分析(66) 网站建设方案(65) 关键(64) 流量(63) 源码(62) 百度优化(62) 网站权重(61) 开放源代码(59) seo培训(53) 网页设计(51) 百度(51) php框架(50) 网站建设知识(50) 大数据(50) 谷歌(49)
宿迁腾云网络网站建设公司
网站建设
  • 私人定制
  • 标准模板建站
  • 经济模板建站
精品模板

宿迁腾云网络网站建设公司

联系电话:13160355545

公司地址:江苏省宿迁市丽景湾华庭北门都市花园公寓9楼907

联系邮箱:admin@tyweb.net

全国分站
  • 北京
  • 广东
  • 东莞 广州 中山 深圳 惠州 江门 珠海 汕头 佛山 湛江 河源 肇庆 潮州 清远 韶关 揭阳 阳江 云浮 茂名 梅州 汕尾
  • 山东
  • 济南 青岛 临沂 济宁 菏泽 烟台 泰安 淄博 潍坊 日照 威海 滨州 东营 聊城 德州 莱芜 枣庄
  • 江苏
  • 苏州 徐州 盐城 无锡 南京 南通 连云港 常州 扬州 镇江 淮安 泰州 宿迁
  • 河南
  • 郑州 南阳 新乡 安阳 洛阳 信阳 平顶山 周口 商丘 开封 焦作 驻马店 濮阳 三门峡 漯河 许昌 鹤壁 济源
  • 上海
  • 河北
  • 石家庄 唐山 保定 邯郸 邢台 沧州 秦皇岛 张家口 衡水 廊坊 承德
  • 浙江
  • 温州 宁波 杭州 台州 嘉兴 金华 湖州 绍兴 舟山 丽水 衢州
  • 陕西
  • 西安 咸阳 宝鸡 汉中 渭南 安康 榆林 商洛 延安 铜川
  • 湖南
  • 长沙 邵阳 常德 衡阳 株洲 湘潭 永州 岳阳 怀化 郴州 娄底 益阳 张家界 湘西
  • 重庆
  • 福建
  • 漳州 泉州 厦门 福州 莆田 宁德 三明 南平 龙岩
  • 天津
  • 云南
  • 昆明 红河 大理 文山 德宏 曲靖 昭通 楚雄 保山 玉溪 丽江 临沧 思茅 西双版纳 怒江 迪庆
  • 四川
  • 成都 绵阳 广元 达州 南充 德阳 广安 阿坝 巴中 遂宁 内江 凉山 攀枝花 乐山 自贡 泸州 雅安 宜宾 资阳 眉山 甘孜
  • 广西
  • 贵港 玉林 北海 南宁 柳州 桂林 梧州 钦州 来宾 河池 百色 贺州 崇左 防城港
  • 安徽
  • 芜湖 合肥 六安 宿州 阜阳 安庆 马鞍山 蚌埠 淮北 淮南 宣城 黄山 铜陵 亳州 池州 巢湖 滁州
  • 海南
  • 三亚 海口 琼海 文昌 东方
  • 江西
  • 南昌 赣州 上饶 吉安 九江 新余 抚州 宜春 景德镇 萍乡 鹰潭
  • 湖北
  • 武汉 宜昌 襄樊 荆州 恩施 孝感 黄冈 十堰 咸宁 黄石 仙桃 随州 天门 荆门 潜江 鄂州 神农架
  • 山西
  • 太原 大同 运城 长治 晋城 忻州 临汾 吕梁 晋中 阳泉 朔州
  • 辽宁
  • 大连 沈阳 丹东 辽阳 葫芦岛 锦州 朝阳 营口 鞍山 抚顺 阜新 本溪 盘锦 铁岭
  • 黑龙江
  • 齐齐哈尔 哈尔滨 大庆 佳木斯 双鸭山 牡丹江 鸡西 黑河 绥化 鹤岗 伊春 大兴安岭 七台河
  • 内蒙古
  • 赤峰 包头 通辽 呼和浩特 乌海 鄂尔多斯 呼伦贝尔
  • 贵州
  • 贵阳 黔东 黔南 遵义 黔西 毕节 铜仁 安顺 六盘水
  • 甘肃
  • 兰州 天水 庆阳 武威 酒泉 张掖 陇南 白银 定西 平凉 嘉峪关 临夏 金昌 甘南
  • 青海
  • 西宁 海西 海东 海北 果洛 玉树 黄南
  • 新疆
  • 乌鲁木齐 伊犁 昌吉 石河子 哈密
  • 西藏
  • 拉萨 山南 林芝 日喀则
  • 吉林
  • 长春 白山 白城 延边 松原 辽源 通化 四平
  • 宁夏
  • 银川 吴忠 中卫 石嘴山 固原
SiteMap
网站地图
TAG标签
Copyright © 2017-2025 TYWEB.NET 宿迁腾云网络科技有限公司 ALL RIGHTS RESERVED.   苏ICP备17033535号-1

热门搜索

百度 下载 2025 2024 2026 货源 货货源 虚拟 禅道 报名 金蝶KIS旗舰版
  • 客服

    在线客服

  • 电话

    13160355545

  • 微信

精品模板
建站费用
成功案例
联系我们