首先 对于ie 必须使用ActiveXObject 来访问本地文件。 这就需要将浏览器的 安全级别调低。 然后重点就是如何在ie8获取本地路径。
- <input id="upload_img" type="file" onchange="onUploadImgChange(this)" />
- fileInput.select();
- var url = document.selection.createRange().text;
- $('#imageTest').attr('src',url);
- try{
- var fso = new ActiveXObject("Scripting.FileSystemObject");
- }
- catch(e)
- {
- alert('如果你用的是ie8 请将安全级别调低!');
- }
- alert("文件大小为:"+fso.GetFile(url).size);
fileInput.select(); var url = document.selection.createRange().text; $('#imageTest').attr('src',url); try{ var fso = new ActiveXObject("Scripting.FileSystemObject"); } catch(e) { alert('如果你用的是ie8 请将安全级别调低!'); } alert("文件大小为:"+fso.GetFile(url).size);而对于 firefox 谷歌等新一代的浏览器 直接可以通过fileInput.files 来获取file的对象数组
- if( fileInput.files && fileInput.files[0] ){
- alert(fileInput);
- alert( fileInput.files[0])
- alert('你选择的文件大小'+fileInput.files[0].size);
- var xx=fileInput.files[0];
- for(var i in xx)
- {
- alert (xx[i])
- }
- }
if( fileInput.files && fileInput.files[0] ){ alert(fileInput); alert( fileInput.files[0]) alert('你选择的文件大小'+fileInput.files[0].size); var xx=fileInput.files[0]; for(var i in xx) { alert (xx[i]) } }下面是一个完成的测试例子。
- <input id="upload_img" type="file" onchange="onUploadImgChange(this)" />
- <script type="text/javascript">
- function onUploadImgChange(fileInput) {
- var filePath = fileInput.value;
- var fileExt = filePath.substring(filePath.lastIndexOf("."))
- .toLowerCase();
- if (!checkFileExt(fileExt))
- {
- alert("您上传的文件不是图片,请重新上传!");
- return;
- }
- if (fileInput.files && fileInput.files[0]) {
- alert(fileInput);
- alert(fileInput.files[0])
- alert('你选择的文件大小' + fileInput.files[0].size);
- var xx = fileInput.files[0];
- for ( var i in xx) {
- alert(xx[i])
- }
- } else {
- fileInput.select();
- var url = document.selection.createRange().text;
- try {
- var fso = new ActiveXObject("Scripting.FileSystemObject");
- } catch (e) {
- alert('如果你用的是ie 请将安全级别调低!');
- }
- alert("文件大小为:" + fso.GetFile(url).size);
- }
- }
- function checkFileExt(ext)
- {
- if (!ext.match(/.jpg|.gif|.png|.bmp/i)) {
- return false;
- }
- return true;
- }
- </script>