当前位置: 首页 > news >正文

吉林 网站备案 照相最近的电脑培训班在哪里

吉林 网站备案 照相,最近的电脑培训班在哪里,html代码大全贪吃蛇可复制,杭州网站建设费用多少这是忙碌的一周。 我们发现了新的HTML5 API如何帮助我们打开,读取和上传用户拖放到浏览器窗口中的文件。 本文总结了技术和浏览器支持的当前级别。 HTML5 API支持 您的JavaScript代码应该在附加事件处理程序之前检查File,FileList和FileReader对象是否存…

这是忙碌的一周。 我们发现了新的HTML5 API如何帮助我们打开,读取和上传用户拖放到浏览器窗口中的文件。 本文总结了技术和浏览器支持的当前级别。

HTML5 API支持

您的JavaScript代码应该在附加事件处理程序之前检查File,FileList和FileReader对象是否存在。 在撰写本文时,最新版本的Chrome,Firefox和Opera支持这些功能:


if (window.File && window.FileList && window.FileReader) { ... }

尽管Opera支持这些对象,但是它们只能通过标准文件输入使用-不能拖放。 因此,需要进一步检查。 我建议使用XMLHttpRequest2上传方法,例如


var xhr = new XMLHttpRequest();
if (xhr.upload) {... attach drag and drop events ...
}

文件拖放

所有浏览器(iPhone和iPad上的浏览器除外)都支持显示熟悉的“浏览”按钮的文件输入类型。 HTML5中引入了“ multiple”属性,我们可以将change事件处理程序附加到该字段:


document.getElementById("fileselect").addEventListener("change", FileSelectHandler, false);

Chrome和Firefox还允许用户将一个或多个文件拖到所选元素上。 您可以附加事件处理程序,包括“ dragover”和“ dragleave”(用于更改样式)以及“ drop”用于检测已删除的文件,例如


document.getElementById("filedrag").addEventListener("drop", FileSelectHandler, false);

检索FileList对象

HTML5 FileList对象是File对象的类似数组的集合。 文件输入字段通过文件属性(event.target.files)返回FileList。 删除的文件通过事件的dataTransfer.files属性(event.dataTransfer.files)返回一个FileList对象。

因此,我们可以使用单个事件处理程序检索FileList对象:


// cancel event default
e.preventDefault();// fetch FileList object
var files = e.target.files || e.dataTransfer.files;// process all File objects
for (var i = 0, file; file = files[i]; i++) {...
}

取消默认事件很重要。 这样可以防止浏览器在将文件放入窗口时尝试显示或处理该文件。

分析文件对象

FileList集合包含许多File对象。 提供了三个有用的文件属性:

  1. .name :文件名(不包含路径信息)
  2. .type :MIME类型,例如图像/ jpeg,文本/纯文本等。
  3. .size :文件大小(以字节为单位)。

可以在进一步处理或上传之前检查文件类型和大小,例如


// process image files under 300,000 bytes
if (file.type.indexOf("image") == 0 && file.size < 300000) {...
}

有关更多信息,请参阅如何使用HTML5和JavaScript打开拖放的文件 。

使用FileReader打开文件

HTML5 FileReader对象使您可以使用JavaScript打开文本或二进制文件。 如您所料,readAsText()方法用于检索文本内容,例如


if (file.type.indexOf("text") == 0) {var reader = new FileReader();reader.onload = function(e) {// get file contentvar text = e.target.result;...}reader.readAsText(file);
}

同样,readAsDataURL()方法将二进制图像数据作为编码数据URL检索,可以将其传递给图像src属性或canvas元素:


if (file.type.indexOf("image") == 0) {var reader = new FileReader();reader.onload = function(e) {document.getElementById("myimage").src = e.target.result;}reader.readAsDataURL(file);
}

有关更多信息,请参阅如何使用HTML5和JavaScript打开拖放的文件 。

使用Ajax上传文件

用户停留在页面上时,可以将适当的文件上载到服务器。 只需将File对象传递到XMLHttpRequest2的send()方法即可:


var xhr = new XMLHttpRequest();
xhr.open("POST", "receivefile.php", true);
xhr.setRequestHeader("X_FILENAME", file.name);
xhr.send(file);

请注意,我们还将文件名作为HTTP标头发送。 这是可选的,但是它允许我们使用诸如PHP之类的语言在服务器上使用其原始名称重新创建文件:


file_put_contents('uploads/' . $_SERVER['HTTP_X_FILENAME'],file_get_contents('php://input')
);

有关更多信息,请参考如何使用HTML5和Ajax异步上传文件 。

创建上传进度条

我们还可以将“ progress”事件附加到XMLHttpRequest2对象:


xhr.upload.addEventListener("progress", ProgressHandler);

处理程序接收到一个事件对象,该对象具有.loaded(传输的字节数)和.total(文件大小)属性。 因此,可以计算进度并将其传递给HTML5 progress标签或任何其他元素,例如


function ProgressHandler(e) {var complete = Math.round(e.loaded / e.total * 100);console.log(complete + "% complete");
}

有关更多信息,请参阅如何在HTML5和JavaScript中创建图形文件上传进度条 。

希望您喜欢这个系列。 文件拖放是可以改变Web应用程序可用性的重要功能。 HTML5终于使它变得容易。

From: https://www.sitepoint.com/html5-file-drag-drop-read-analyze-upload-progress-bars/

http://www.lbrq.cn/news/2649439.html

相关文章:

  • 租房网站开发视频教程bilibili官网网页入口
  • 独立网站优化的方法画质优化app下载
  • 中国建设企业协会网站太原网站制作优化seo公司
  • 用js做网站的滚屏效果简述网络营销的含义
  • 做定制商品的网站百度竞价规则
  • 官方网站做兼职seo网站推广seo
  • 19年做哪个网站致富珠海seo快速排名
  • 宁波城乡建设委员会的网站微信软文广告经典案例
  • 荣耀手机官方网站传统营销与网络营销的整合方法
  • 各大网站搜索引擎入口重庆网站seo外包
  • 哈尔滨工程研究生招生信息网达州seo
  • wordpress 产品展示插件seo研究中心怎么了
  • 网络代理记账seo关键词优化服务
  • 网站开发简历 自我评价seo网站建设优化
  • 网站推广与营销足球比赛今日最新推荐
  • 温州seo代理优秀网站seo报价
  • 金州网站建设百度 营销中心
  • 奥鹏网页设计与网站建设进一步优化营商环境
  • 网站域名试用期中国推广网
  • 企业网站的建设费用腾讯云服务器
  • 山东建设厅官方网站二建报名非国产手机浏览器
  • 做网站需要什么配置服务器吗小说关键词提取软件
  • 做网站多少钱 优帮云东莞最新消息 今天
  • 如何去除网站外链最近的新闻大事10条
  • 长沙做网站街前端seo主要优化哪些
  • 网站后台用什么程序做网站制作策划
  • 东莞清溪网站建设新网站怎么快速收录
  • 怎么在雅虎做网站收入百度百度一下你就知道
  • 在印度做视频网站沈阳网站制作公司
  • 哪个网站做马代路线好友情链接的四个技巧
  • drippingblues靶机
  • LLM表征的提取方式
  • 2025华数杯B题一等奖方案:网络切片无线资源管理全解析(附Python/MATLAB代码)
  • 跨境电商系统开发:ZKmall开源商城的技术选型与代码规范实践
  • 智能情趣设备、爆 bug:可被远程操控。。。
  • Day01 项目概述,环境搭建