首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > CSS >

firefox3不能获得html file的全路径的有关问题

2012-10-19 
firefox3不能获得html file的全路径的问题今天这个问题困扰了我很久,就是firefox3不能获得html file的全路

firefox3不能获得html file的全路径的问题

今天这个问题困扰了我很久,就是firefox3不能获得html file的全路径的问题

因为我做的电子商务网站是要在firefox上面运行的,在后台管理中,需要一个

添加图片的功能,添加图片的时候是需要使用js来预览上传的图片的,所以需要

做一个这样的功能。

?

一开始我是以为只要用imgFile.value就可以获取上传文件控件的文件的绝对路径。

但是在测试的时候,发现firefox的情况下,只能获取文件的文件名,在IE下则可获取文件的绝对路径,

上网查了一下资料,原来firefox已经禁用了这个value的属性来获取文件的绝对路径,因为firefox以

安全问题,把获取路径给禁用了,有些hacker可以利用这个文件路径将文件上传到服务器。

?

之后我找到了一个解决方法,就是利用firefox提供的函数来获取获取文件路径的问题

?

整个页面的HTML代码,可以上传文件后通过预览来看见上传的图片

????"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ??<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> ????<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ????<title>input type=file & Firefox 3</title> </head> ??<body> ??????<h1>input type=file & Firefox 3</h1> ??????<script type="text/javascript"> // <![CDATA[ ??function inputFileOnChange() {???? ????if(document.getElementById('my-file').files) { ????????// Support: nsIDOMFile, nsIDOMFileList ????????alert('value: ' + document.getElementById('my-file').value); ????????alert('files.length: ' + document.getElementById('my-file').files.length); ????????alert('fileName: ' + document.getElementById('my-file').files.item(0).fileName); ????????alert('fileSize: ' + document.getElementById('my-file').files.item(0).fileSize); ????????alert('dataurl: ' + document.getElementById('my-file').files.item(0).getAsDataURL()); ????????alert('data: ' + document.getElementById('my-file').files.item(0).getAsBinary()); ????????alert('datatext: ' + document.getElementById('my-file').files.item(0).getAsText("utf-8")); ????}; }; ??// ]]></script> ??????<div> ????<input type="file" name="my-file" id="my-file" onchange="inputFileOnChange();" /> </div> ??????</body> </html>

?

fileName :用于获取到用户所选文件的名称,这和直接取value值所得到的结果一样。

fileSize :得到用户所选文件的大小。

getAsBinary() :得到用户所选文件的二进制数据。

getAsDataURL() :得到用户所选文件的路径,该路径被加密了,目前只能在FireFox中使用。

getAsText() :得到用户所选文件的指定字符编码的文本。

?

?

ie6中

view sourceprint?var file_url = document.getElementById("file").value;

?

ie7.8

view sourceprint?var file = document.getElementById("file");?? file.select();?? var file_url = document.selection.createRange().text;

热点排行