怎样 在js中获取input file

怎样 在js中获取input file,第1张

javascript 获取文件域 (type=file) 的完整路径一直是很麻烦的问题,问题主要出在一些浏览器基于安全性考虑而不能正常获取到文件域中选中的决对路径,尤其一些基于webkit的浏览器比如 Chrome, Safire等浏览器,下面是一个可以兼容 IE 6 , 7, 8 和 firefox 的获取 input file 完整路径的方法,该方法不支持 Chrome 和 Safire,要支持这些浏览器可能要使用到 Flash ,对程序员来说比较麻烦。

HTML页面:

<input type="file" name="attachment" id="attachment" />

<input type="text" name="trueattachment" id="trueattachment" />js部分:

<script type="text/javascript">

var attachment=documentgetElementById("attachment");

var trueattachment=documentgetElementById("trueattachment");

attachmentonchange=function(){

trueattachmentvalue=getFullPath(this);

}

function getFullPath(obj){

if(obj)

{

//ie

if (windownavigatoruserAgentindexOf("MSIE")>=1)

{

objselect();

return documentselectioncreateRange()text;

}

//firefox

else if(windownavigatoruserAgentindexOf("Firefox")>=1)

{

if(objfiles)

{

return objfilesitem(0)getAsDataURL();

}

return objvalue;

}

return objvalue;

}

}

</script>

近几个月来的工作是一个交易系统持续改进项目 迭代发布周期大约为 ~ 周 最近一次迭代是V 版 在礼拜三完成发布 不幸的是 第二天上午就被老大逮过去 原来老大从生产中揪出了一个bug 大致的问题如下

系统中有一个常用的自定义控件 目的是协助选择客户 而V 版的持续改进需求是给控件增加两个筛选选项 支持不同的默认值配置 很简单的一个需 求 代码修改也简单 其中一个修改是给一个js文件里边的一个函数增加了一个传入参数 用来传递配置值 经过RC R测试 一切都显得很正常 不过上 了生产才被发现bug了 加载出来的客户明显不正常 数目不对 也与预期的查询配置不相符

检查控件内部跳转链接 发现问题 传递的参数明显与预期不符 而这个链接则是由上面修改过的JS函数生成 因此判定问题是由于客户端缓存了原版JS 文件 新函数的调用由旧函数所替换引发的 经过清除缓存 重新加载页面后 这个自定义控件能够正常工作 很不幸的是 我们是不能通过打电话告诉每一位用 户 你需要清除缓存 然后才能正常使用这个功能

到此时 我才意识到需要一种方法来控件JS的缓存问题 否则 后续任何涉及JS文件内容的修改 都会因为缓存无法获取最新JS文件 而导致生产事故

原则上 我们是需要在有JS更新的时候 才会去重新加载JS文件 而不是每次都重新加载 因此第一种做法给JS应用地址后添加随机参数是不可取的 因为它意味着 几乎每次加载页面都会是重新加载JS 而不会合理的利用缓存JS 但是 我们还有第二种更合理的做法 如果关注过一些国外网站代码 会发现 他们通常是在js链接后添加一个版本号参数 而不是随机数 当js代码发生修改时 只需要将版本号加 就可以很巧妙的解决通知客户端更新js文件 不知道 谁是第一个想到这种方法的人 不过毫无疑问 他是值得我们钦佩的 真是一个不错的idea的!

lishixinzhi/Article/program/Java/JSP/201311/20638

js是无法直接读取数据库中的数据,但是可以用服务器端脚本与js搭配使用。

如:

<% String testStr = "HelloJava";%>

<script>

alert('<%=testStr%>');

</script>

因为服务端脚本是先运行的,Js是后运行在客户端的。

所以可以先用服务端脚本读取数据库数据 然后放到js里再运行。

使用js获取文件的后缀 有个不错的正则 大家可以借用下 具体如下 感兴趣的朋友可以参考下哈 希望对大家有所帮助  

正则得到后缀

复制代码 代码如下: lishixinzhi/Article/program/Java/Javascript/201311/25503

以上就是关于怎样 在js中获取input file全部的内容,包括:怎样 在js中获取input file、js文件缓存之版本管理详解、JS 文件如何获取数据库中的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9710549.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存