内容涉及范围:使用input file选择图片后,在不提交至服务器的情况下,预览选择的图片,获取图片文件的大小。
先说一些结论,在默认设置的情况下,ie6和firefox6可以预览和获取大小;ie7-9只能预览;chrome13只能获取大小。只能预览或只能获取大小的,很大程度上都是由浏览器的安全策略造成的。
接下来是一些详情,
html代码:
<input id=”file” type=”file”" />
<div id=”div”>
<img id=”img” />
</div>
各浏览器图片预览及大小获得:
| 浏览器(版本) | 图片预览 | 大小获得 |
| ie6 | 设置img.src=file.value | 通过img.fileSize获得 |
| ie7-9 |
|
无法获得,需结合后台功能 |
| firefox6 | 设置img.src=file.files.item(0).getAsDataURL() | file.files.item(0).fileSize或者file.files.item(0).size |
| chrome13 | 无法通过前端方法本地预览,需结合后台功能,即上传文件后展示 | file.files.item(0).fileSize或者file.files.item(0).size |
在ie7-9、firefox6及chrome13下,浏览器出于安全考虑,无法通过file.value获得选择图片的本地路径,其中ie7-9和chrome13获得的是经过处理的本地路径,而firefox6下获得的是图片的名称。
DoCiTe