上传文件时,我想获取客户端上传文件的原始路径。第一考虑,当然是使用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 写道网上的一些解决方案:
一般都是上传以后在数据库中保存上传后的文件路径,本地路径一般没意义
除非像上面所说的文件上传预览,还有那么点用处
我用来做数据接口的,我仅仅是把路径传给另一个系统,然后那个系统就可以从这个路径取文件了。
字符串截取
var file = $("#file")val();
var fileName = getFileName(file); function getFileName(o){ var pos=olastIndexOf("\\"); return osubstring(pos+1); } 方法二:正则表达式
var file = $("#file")val();
var strFileName=filereplace(/^+\\([^\\]+)(\[^\\\])$/gi,"$1"); //正则表达式获取文件名,不带后缀var FileExt=filereplace(/+\/,""); //正则表达式获取后缀
:jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档 *** 作、事件处理、动画设计和Ajax交互。
jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 60+、FF 15+、Safari 20+、Opera 90+等。
一、通过 CFile 类的成员函数 GetLength 获取文件大小;二、通过 CFileFind 类的成员函数 GetLength 获取文件大小;下面详细说明这两种方法:一、CFile 类1、通过 Open 成员函数打开文件;2、通过 GetLength 成员函数获取文件大小;3、通过 Close 关闭文件。CFile f; CString str;fOpen("e:\test1wav",CFile::modeRead|CFile::shareDenyNone); strFormat("File size : %d",fGetLength()); fClose();MessageBox(str);二、CFileFind 类1、通过 FindFile 开始查找文件;2、通过 FindNextFile 获取文件信息;3、通过 GetLength 获取文件大小;4、通过 Close 关闭查找。CFileFind finder; CString str;finderFindFile("e:\test1wav"); finderFindNextFile(); strFormat("File size : %d",finderGetLength()); finderClose();MessageBox(str); 以上是 MFC 的方法,下面是 SDK 方法:一、通过 GetFileSize API 函数获取文件大小;HANDLE hFile; DWORD dwFileSize = 0; char szData[30];hFile = CreateFile("e:\test1wav",GENERIC_READ,FILE_SHARE_READ,NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);dwFileSize = GetFileSize(hFile,NULL);CloseHandle(hFile);sprintf(szData,"File Size : %d",dwFileSize);MessageBox(NULL,szData,"FileSize",MB_ICONINFORMATION); 二、通过 FindFirstFile 和 WIN32_FIND_DATA 方法获取文件大小;LPWIN32_FIND_DATA lpFindFileData; HANDLE hFindFile; char szData[30];lpFindFileData = new WIN32_FIND_DATA;hFindFile = FindFirstFile("e:\test1wav",lpFindFileData); FindNextFile(hFindFile,lpFindFileData); MessageBox(NULL,szData,"FileSize",MB_ICONINFORMATION);delete lpFindFileData;说明:以上代码都没有检查函数返回值,读者在实际编写程序时应该检查文件打开是否成功。另外,CFile 类在实现时,是从文件头移动到文件尾,而不是用 GetFileSize API 函数实现的,有兴趣的朋友可以看看MFC源代码。
使用步骤如下:
1jQuery给放到一个文件夹里面,方便我们待会引用这个jQuery,这里我就放到我项目的js文件夹里面。
2然后我们来开始编辑HTML界面代码。
3使用script标签把jQuery引入到我们的HTML界面。src引号里面的就是我们的jQuery路径名称。
4接着再书写一个script标签对,里面写上jQuery入口函数,这样,当我们的HTML加载完成之后就会执行我们的jQuery代码
注意几点:
1 一个是端口号,注意你自己设置的是哪个端口号
2 第二个是要保证txt格式中的文件是json格式 ,不然会没有返回值。
3 不要在本地直接打开 ,放在本地服务器上,apache之类的
以上就是关于java或js(可用jquery)如何获取上传文件原始路径名全部的内容,包括:java或js(可用jquery)如何获取上传文件原始路径名、Js/Jquery获取input file的文件名、jq 1.8的upload如何获取文件大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)