今天这个问题困扰了我很久,就是firefox3不能获得html file的全路径的问题
因为我做的电子商务网站是要在firefox上面运行的,在后台管理中,需要一个
添加图片的功能,添加图片的时候是需要使用js来预览上传的图片的,所以需要
做一个这样的功能。
一开始我是以为只要用imgFile.value就可以获取上传文件控件的文件的绝对路径。
< script language = "javascript" type = "text/javascript" >
|
function PreviewImg(imgFile) {
|
var newPreview = document.getElementById("imgfengmian");
|
newPreview.src = imgFile.value;
|
但是在测试的时候,发现firefox的情况下,只能获取文件的文件名,在IE下则可获取文件的绝对路径,
上网查了一下资料,原来firefox已经禁用了这个value的属性来获取文件的绝对路径,因为firefox以
安全问题,把获取路径给禁用了,有些hacker可以利用这个文件路径将文件上传到服务器。
之后我找到了一个解决方法,就是利用firefox提供的函数来获取获取文件路径的问题
< script language = "javascript" type = "text/javascript" >
|
function PreviewImg(imgFile) {
|
var newPreview = document.getElementById("imgfengmian");
|
alert(imgFile.files.item(0).getAsDataURL());
|
这样,就会输出文件的路径,但是这个文件的路径是经过firefox加密的,如下图
整个页面的HTML代码,可以上传文件后通过预览来看见上传的图片
<%@ Page Title="商品管理-淘书网" Language="C#" MasterPageFile="~/admin/adminMain.master" |
AutoEventWireup="true" CodeFile="productmanage.aspx.cs" Inherits="admin_productmanage" %>
|
< asp:Content ID = "Content1" ContentPlaceHolderID = "M_ContentPlaceHolder" runat = "Server" >
|
< script language = "javascript" type = "text/javascript" >
|
function PreviewImg(imgFile) {
|
var newPreview = document.getElementById("imgfengmian");
|
newPreview.src = imgFile.files.item(0).getAsDataURL();
|
alert(imgFile.files.item(0).getAsDataURL());
|
< link href = "../css/productmanage.css" rel = "stylesheet" type = "text/css" />
|
< div id = "camanager" class = "round2" >
|
< asp:ScriptManager ID = "ScriptManager1" runat = "server" >
|
< asp:UpdatePanel ID = "UpdatePanel1" runat = "server" >
|
商品名称:< asp:TextBox ID = "txtname" runat = "server" ></ asp:TextBox >
|
所属类别:< asp:DropDownList ID = "ddlca" runat = "server" DataSourceID = "ObjectDataSource1"
|
DataTextField = "caName" DataValueField = "categoryId" >
|
商品价格:< asp:TextBox ID = "txtprice" runat = "server" ></ asp:TextBox >
|
作 者:< asp:TextBox ID = "txtauthor" runat = "server" ></ asp:TextBox >
|
出 版 社:< asp:TextBox ID = "txtpublisher" runat = "server" ></ asp:TextBox >
|
商品封面:< asp:FileUpload ID = "fulfengmian" runat = "server" onchange = "PreviewImg(this)" />
|
< img id = "imgfengmian" alt = "" src = "" height = "110px" width = "110px" />
|
商品库存:< asp:TextBox ID = "txtquan" runat = "server" ></ asp:TextBox >
|
商品介绍:< asp:TextBox ID = "txtintro" runat = "server" Columns = "40" Rows = "6" TextMode = "MultiLine" ></ asp:TextBox >
|
< asp:Button ID = "btnadd" runat = "server" Text = "添加" />
|
< input id = "Reset1" type = "reset" value = "重置" />< asp:ObjectDataSource ID = "ObjectDataSource1"
|
runat = "server" SelectMethod = "GetAllCategory" TypeName = "EeconomicBLL.CategoryManager" >
|
firefox里面提供的方法的总结
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" />
|
< title >input type=file & Firefox 3</ title >
|
< h1 >input type=file & Firefox 3</ h1 >
|
< script type = "text/javascript" >
|
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"));
|
< input type = "file" name = "my-file" id = "my-file" onchange = "inputFileOnChange();" />
|
fileName :用于获取到用户所选文件的名称,这和直接取value值所得到的结果一样。
fileSize :得到用户所选文件的大小。
getAsBinary() :得到用户所选文件的二进制数据。
getAsDataURL() :得到用户所选文件的路径,该路径被加密了,目前只能在FireFox中使用。
getAsText() :得到用户所选文件的指定字符编码的文本。
ie6中
var file_url = document.getElementById( "file" ).value;
|
ie7.8
var file = document.getElementById( "file" );
|
var file_url = document.selection.createRange().text;
|
分享到:
相关推荐
关于如何从firefox中获取file控件里的实际路径的解决代码
具体代码如下: 代码如下: <html> <head> <title>get file input full path</title> [removed] function getFullPath(obj) { if(obj) { //ie... } //firefox else if(window.navigator.userAge
这里我们按浏览器分,主要包括IE6,IE7/8 和Firefox3, 不包含Opera,Safari和Chrome,这三个基本上需求很小,没有研究。 总结一下就是: IE6下可以直接从file的value获取图片路径来显示预览。 IE7和IE8下通过select...
2、Mozilla Firefox 3、Google Chrome 4、Apple Safari 5、Opera Opera(欧朋) 3、主要技术 1、HTML 2、CSS 3、Javascript 2、HTML入门(重点) 1、什么是HTML Hyper Text Markup Language 超级 文本 标记 ...
- 非root解压问题 不能解压 - list oexe 图标问题 - 用户目录不存在判断 - fileCahe 互斥锁 reset 不用 - ie 8~10样式问题调整 ###ver2.6 `2014/7/6` ---- ####update: - 完全性优化;加入严格的校验机制 - ...
我每隔约15分钟从crontab中运行一次,以使我的主页使用firefox和chrome作为我的组织议程的最新版本。配置在config.el修改org-agenda-files以包含要包含在议程中的org文件的路径。 为HTML输出设置所需的位置agenda-...
在FireFox中,如果窗口的滚动条没有回滚到顶部,那么Flash无法加载 Race-conditions when files are cached 兼容ASP.Net Forms SWFUpload v2 延续了SWFUpload的设计目标,将UI分离以交给开发人员控制和后续扩展 ...
在Web开发中,-Compatible_BROWSER(IE6、7、8)和Firefox(FF)都是常用的浏览器,缩略图的使用方法是每个开发者都需要掌握的。本文将详细介绍在IE(678)和FF浏览器中使用缩略图的方法,通过实例教程,帮助开发者...
Firefox问题 出于安全原因,Firefox不久前取消了配置“新选项卡”页面的功能,因此我们需要一种解决方法。 在Firefox安装的基本目录中,创建以下两个文件,分别包含相应的内容: autoconfig.cfg 路径设置为HTML...
3、一般用户不能访问内容 49 4、页面导航不能分页 49 5、一些portal常见问题 49 6、Portal中调用PUMA SPI管理用户和组信息 51 7、WCM内存溢出的解决方法 53 七、组件及其标签 53 (一)、标签 53 1、jsp组件 53 2、...
2.网络工具,包括:文件共享、网络驱动器映射和TCP/IP设置,同时ERD Commander 2005较2003不同的一个地方是集成了Mozilla Firefox网页浏览器,网络功能更加完善。 3.系统工具,包括9个组件: Crash Analyer,主要是...
由于jQuery加载的是本地JSON数据,部分浏览器无法正常显示HTML的内容,目前已知使用FireFox可直接打开 使用chrome打开HTML时,需从cmd进入chrome安装目录,然后输入“chrome.exe --allow-file-access-from-files”...
取证工具取证分析工具的集合。 仍在进行中...免责声明仅用于教育用途。 作者不对恶意使用负责!依存关系: lxml: : olefile: ://pypi.python.org/pypi/olefile/0.44 PyPDF2... firefox_scanner:用于解析Firefox配
2.网络工具,包括:文件共享、网络驱动器映射和TCP/IP设置,同时ERD Commander 2005较2003不同的一个地方是集成了Mozilla Firefox网页浏览器,网络功能更加完善。 3.系统工具,包括9个组件: Crash Analyer,主要是...
2.网络工具,包括:文件共享、网络驱动器映射和TCP/IP设置,同时ERD Commander 2005较2003不同的一个地方是集成了Mozilla Firefox网页浏览器,网络功能更加完善。 3.系统工具,包括9个组件: Crash Analyer,主要是...
就像以前在Firefox中可用的browser.newtab.url一样。 大小:5 kB使用此扩展名,您可以更改打开新标签页时显示的页面。 将您喜欢的网站设置为开始标签页。 另外,您可以从本地磁盘构建和设置自己的起始页。 只需创建...
2.全面支持,IE7,IE8,FireFox3.0,FireFox3.5,Opera8,Opera9,Safari等浏览器。 3.新增控件直接保存文件功能。 4.新增控件直接读取文本、网页文件功能。 5.新增控件直接读取WEB网页功能。 6.新增控制用户上传文件类型...
就像以前在Firefox中可用的browser.newtab.url一样。 大小:5 kB使用此扩展名,您可以更改打开新标签页时显示的页面。 将您喜欢的网站设置为开始标签页。 另外,您可以从本地磁盘构建和设置自己的起始页。 只需创建...
一组用于执行各种任务的Python脚本: (文件/文本操作,HTTP请求,文件下载,HTML解析器) modules / file_system_functions-获取文件名,路径,... addons_download-通过直接URL的Firefox插件下载器addons_parse-从