fileupload(文件上传的实现方式)
文件上传的实现方式
文件上传是指通过web界面上传文件到服务器的过程,常见于网站注册时上传头像、用户上传附件等场合。下面我们将介绍三种实现文件上传的方式。
方式一:表单提交
表单提交是最为简单的上传文件方式,只需要使用HTML的form表单,指明method为post,enctype为“multipart/form-data”即可。其中form表单最重要的属性是enctype,只有当enctype属性设为“multipart/form-data”时,表单数据才会随文件一并提交到服务器。
使用表单提交文件时要注意,由于提交的数据是二进制数据,传输的速度要远慢于纯文本数据,因此需要设置服务接受数据的上限,避免上传文件大小超过服务器所允许的范围。
方式二:jQuery-upload插件
jQuery-upload是一种简便的上传文件的方式,它提供了多样的方式来控制上传图片,并且使用非常方便,可以对上传文件进行限制、过滤与排序,在上传文件前可以预览图片。它基于ajax技术,可以在不刷新页面的情况下,上传文件并返回服务器的处理结果,能够方便地实现进度条效果,提高用户的体验。
使用jQuery-upload时需要引入jQuery插件,在html中引入jQuery-upload的js文件和jQuery文件,然后对上传控件进行初始化。其中最重要的是upload方法,它可以接受一个配置对象,可以配置对上传的文件进行过滤,上传方式,文件大小等设置。
方式三:HTML5 File API
HTML5提供了File API,该API可以实现web端本地文件的操作,包括文件的选取、上传和预览等。使用HTML5 File API时需判断用户的浏览器是否支持File API,支持的浏览器可以使用File对象的api来实现文件上传。
HTML5 File API分为三部分:选择文件(input type=file控件)、读取文件(FileReader API)、上传文件(xhr-based file uploads)。这三部分旨在解决文件的选择、读取与上传这三个问题。使用HTML5 File API时不需要第三方插件和浏览器附加程序,仅需浏览器对File API支持,就可以在web端实现文件的上传和读取。
虽然HTML5 File API实现的上传功能简单、方便,但缺点也同样显而易见。首先,其兼容性不佳,需要适配各种不同的浏览器,其实现方式较为繁琐。其次,由于一旦采用HTML5 File API,就意味着需要一个新的体系架构,与传统的表单提交、jQuery插件等方式有所不同,需要解决多个浏览器的文件上传、读取等方面的问题。