关于前端jquery:选择文件var files=$("#img").files,输出files是undefined。求解

关于前端jquery:选择文件var files=$("#img").files,输出files是undefined。求解,第1张

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=10">

<meta >

IE与FF获取上传文件路径方法

1 function getPath(obj)

2 {

3 if(obj)

4 {

5

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

7 {

8 objselect();

9

10 return documentselectioncreateRange()text;

11 }

12

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

14 {

15 if(objfiles)

16 {

17

18 return objfilesitem(0)getAsDataURL();

19 }

20 return objvalue;

21 }

22 return objvalue;

23 }

24 }

$('input')on('change',function(){

var value = $(this)val();

value = valuesplit("\\")[2];

})

value

就是名称。因为浏览器安全机制

获取到的value都是C:\fakepath\

加上名,所以可以用这个方式获取。

<input type="file" id="file_input">

<script>

$(function(){

   $("#file_input")change(function(){

      alert("文件名及路径"+$(this)val()+"\n文件类型可以根据扩展名来判断");

   });

})

</script>

上传文件时,我想获取客户端上传文件的原始路径。第一考虑,当然是使用js,例如网上可以找到的:

function getPath(obj) { if (obj) { if (windownavigatoruserAgentindexOf("MSIE") >= 1) { objselect(); return documentselectioncreateRange()text; } else if (windownavigatoruserAgentindexOf("Firefox") >= 1) { if (objfiles) { return objfilesitem(0)getAsDataURL(); } return objvalue; } return objvalue; } } 但这样的代码在Ie下还是可行的,但在火狐下不兼容。所以又想通过servlet的第三方工具去做,例如FileUpload,本以为FileItem下的getName()方法能够得到全路径名,但结果仍然只得到文件名,很是杯具!求解决方法!?

引用至于你说的,不明白你的意思关键问题是我要获得这个路径,并且传递到后台!用js会有兼容性问题,如果用FileUpload上传,是否可以获得呢?我是没有得到的!!! 问题补充:zhanjia 写道上传文件一般用input标签,type为file,浏览选择文件后就是文件在本地的绝对路径了

引用至于你说的,不明白你的意思关键的问题是我要获得这个本地路径,并且传到后台!用js可以得到,但存在兼容性问题!?如果用FileUpload呢?我暂时还没有得到!!! 问题补充:zhanjia 写道网上的一些解决方案:

一般都是上传以后在数据库中保存上传后的文件路径,本地路径一般没意义

除非像上面所说的文件上传预览,还有那么点用处

我用来做数据接口的,我仅仅是把路径传给另一个系统,然后那个系统就可以从这个路径取文件了。

//根据不同浏览器获取路径

function getvl(obj){

//判断浏览器

var Sys = {};

var ua = navigatoruserAgenttoLowerCase();

var s;

(s = uamatch(/msie ([\d]+)/)) Sysie = s[1] :

(s = uamatch(/firefox\/([\d]+)/)) Sysfirefox = s[1] :

(s = uamatch(/chrome\/([\d]+)/)) Syschrome = s[1] :

(s = uamatch(/opera([\d]+)/)) Sysopera = s[1] :

(s = uamatch(/version\/([\d]+)safari/)) Syssafari = s[1] : 0;

var file_url="";

if(Sysie<="60"){

//ie55,ie60

file_url = objvalue;

}else if(Sysie>="70"){

//ie7,ie8

objselect();

file_url = documentselectioncreateRange()text;

}else if(Sysfirefox){

//fx

//file_url = documentgetElementById("file")files[0]getAsDataURL();//获取的路径为FF识别的加密字符串

file_url = readFileFirefox(obj);

}else if(Syschrome){

file_url = objvalue;

}

//alert(file_url);

documentgetElementById("text")innerHTML="获取文件域完整路径为:"+file_url;

}

以上就是关于关于前端jquery:选择文件var files=$("#img").files,输出files是undefined。求解全部的内容,包括:关于前端jquery:选择文件var files=$("#img").files,输出files是undefined。求解、jquery/js 得到file的value、jquery中获取<input type=file id='fileid'>路径问题,ie和火狐有区别,在火狐中我怎么获取其路径,ie可以等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存