EL表达式如何获得绝对路径
我们一般的做法是
建立一个单独的jsp文件,然后在文件里面用
<c:set var="path" value="${pageContextrequestcontextPath}"/>
然后再用到的文件里面导入上面那个jsp文件,
在需要的地方直接写 ${path} 就可以了
当然如果需要的地方少的话直接写:${pageContextrequestcontextPath}
<input id="myfile" type="file" />
<br />
<img src="" alt="Image to be upload" />
<div id="info"></div>
<script type="text/javascript">
var dFile = documentgetElementById('myfile');
var dImg = documentgetElementsByTagName('img')[0];
var dInfo = documentgetElementById('info');
dFileonchange = function(){
if(!dFilevaluematch(/jpg|gif|png|bmp/i)){alert('File type must be: jpg, gif, bmp or png !');return;}
if(dFilefiles){
dImgsrc = dFilefiles[0]getAsDataURL();
alert(dImgsrc);
}else if(dFilevalueindexOf('\\') > -1 || dFilevalueindexOf('\/') > -1){
dImgsrc = dFilevalue;
alert(dImgsrc);
}
}
</script>
输出 完整路径。
这是我以前写的一个上传的时候,里面用到了获取路径的代码,你看看对你有用不吧,如果对这个代码有不懂的,可以追问,下面附上我的代码:
protected void btnUp_Click(object sender, EventArgs e)
{
//1验证是否选择文件
if (fuImgHasFile)
{
//2验证文件类型是否符合要求
//获取文件后缀()
string strFileType = PathGetExtension(fuImgPostedFileFileName)ToLower();//获取文件后缀名,ToLower():转化为小写
//4获取上传后的目录//将虚拟路径映射成物理目录路径
string strPath = ServerMapPath(ConfigurationManagerAppSettings["upPath"]ToString());
//获取配置文件Webconfig中appSettings中的imgType
string strType = ConfigurationManagerAppSettings["imgType"]ToString();
if (strTypeIndexOf(strFileType) > -1)
{
//3验证文件大小
if (fuImgPostedFileContentLength < 2048000)
{
DateTime dtNow = DateTimeNow;
//以年月日创建文件夹
strPath += dtNowToString("yyyy-MM-dd")+"\\";
try
{
//验证指定目录文件夹是否存在
if (!DirectoryExists(strPath))
{
//创建文件夹
DirectoryCreateDirectory(strPath);
}
//文件重命名
string strNewName = dtNowToString("yyyyMMddhhmmssfff") + strFileType;
//保存(服务器)
fuImgSaveAs(strPath + strNewName);
ResponseWrite("文件上传成功!");
}
catch (Exception ex)
{
ResponseWrite(exMessage);
}
}
else
ResponseWrite("对不起,上传文件不得超过2M!");
}
else
ResponseWrite("对不起,上传文件类型不正确!");
}
else
ResponseWrite("对不起,请选择上传文件!");
}
你好,最近我也在做这个,根据你说这个,在文档没有具体的方法,只有你下载到自己的服务器,然后把自己的服务器路径当地址,例如:htttp:///xxxjpg 这种形式,这种是针对于页面采用JS-SDK的做法。如果你用的是微信客户端上传的,可以获取到路径。希望我的回答对你有帮助!
string filePath = ServerMapPath("D:\tst\tsttx");
参考MSDN
http://msdnmicrosoftcom/zh-cn/library/systemwebhttpserverutilitymappathaspx
解释:
public string MapPath(
string path
)
参数
path
类型:SystemString
Web 服务器的虚拟路径。
返回值
类型:SystemString
与 path 相对应的物理文件路径。
在java中获得文件的路径在我们做上传文件操作时是不可避免的。 web 上运行 1:thisgetClass()getClassLoader()getResource("/")getPath(); thisgetClass()getClassLoader()getResource("")getPath(); 得到的是 ClassPath的绝对URI路径。
以工程名为TEST为例:
(1)得到包含工程名的当前页面全路径:requestgetRequestURI(),结果:/TEST/testjsp。
(2)得到工程名:requestgetContextPath(),结果:/TEST。
(3)得到当前页面所在目录下全名称:requestgetServletPath()。结果:如果页面在jsp目录下 /TEST/jsp/testjsp。
(4)得到页面所在服务器的全路径:applicationgetRealPath("页面jsp"),结果D:/resin/webapps/TEST/testjsp。
(5)得到页面所在服务器的绝对路径:absPath=new javaioFile(applicationgetRealPath(requestgetRequestURI()))getParent();
结果:D:/resin/webapps/TEST。
拓展:在类中取得路径的方法
(1)类的绝对路径:String u=ClassclassgetClass()getResource("/")getPath()
结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/
(2)得到工程的路径:SystemgetProperty("userdir")
结果:D:/TEST
1、利用SystemgetProperty()函数获取当前路径:
Systemoutprintln(SystemgetProperty("userdir"));//userdir指定了当前的路径
2、使用File提供的函数获取当前路径:
File directory = new File("");//设定为当前文件夹
try{
Systemoutprintln(directorygetCanonicalPath());//获取标准的路径
Systemoutprintln(directorygetAbsolutePath());//获取绝对路径
}catch(Exceptin e){}
FilegetCanonicalPath()和FilegetAbsolutePath()大约只是对于new File("")和new File("")两种路径有所区别。
# 对于getCanonicalPath()函数,“"就表示当前的文件夹,而”“则表示当前文件夹的上一级文件夹
# 对于getAbsolutePath()函数,则不管””、“”,返回当前的路径加上你在new File()时设定的路径
# 至于getPath()函数,得到的只是你在new File()时设定的路径
比如当前的路径为 C:/test :
File directory = new File("abc");
directorygetCanonicalPath(); //得到的是C:/test/abc
directorygetAbsolutePath(); //得到的是C:/test/abc
direcotrygetPath(); //得到的是abc
File directory = new File("");
directorygetCanonicalPath(); //得到的是C:/test
directorygetAbsolutePath(); //得到的是C:/test/
direcotrygetPath(); //得到的是
File directory = new File("");
directorygetCanonicalPath(); //得到的是C:/
directorygetAbsolutePath(); //得到的是C:/test/
direcotrygetPath(); //得到的是
另外:SystemgetProperty()中的字符串参数如下:
SystemgetProperty()参数大全
# javaversion Java Runtime Environment version
# javavendor Java Runtime Environment vendor
# javavendorurl Java vendor URL
# javahome Java installation directory
# javavmspecificationversion Java Virtual Machine specification version
# javavmspecificationvendor Java Virtual Machine specification vendor
# javavmspecificationname Java Virtual Machine specification name
# javavmversion Java Virtual Machine implementation version
# javavmvendor Java Virtual Machine implementation vendor
# javavmname Java Virtual Machine implementation name
# javaspecificationversion Java Runtime Environment specification version
# javaspecificationvendor Java Runtime Environment specification vendor
# javaspecificationname Java Runtime Environment specification name
# javaclassversion Java class format version number
# javaclasspath Java class path
# javalibrarypath List of paths to search when loading libraries
# javaiotmpdir Default temp file path
# javacompiler Name of JIT compiler to use
# javaextdirs Path of extension directory or directories
# osname Operating system name
# osarch Operating system architecture
# osversion Operating system version
# fileseparator File separator ("/" on UNIX)
# pathseparator Path separator (":" on UNIX)
# lineseparator Line separator ("/n" on UNIX)
# username User’s account name
# userhome User’s home directory
# userdir User’s current working directory
JAVA中获取路径:
1jsp中取得路径:
以工程名为TEST为例:
(1)得到包含工程名的当前页面全路径:requestgetRequestURI()
结果:/TEST/testjsp
(2)得到工程名:requestgetContextPath()
结果:/TEST
(3)得到当前页面所在目录下全名称:requestgetServletPath()
结果:如果页面在jsp目录下 /TEST/jsp/testjsp
(4)得到页面所在服务器的全路径:applicationgetRealPath("页面jsp")
结果:D:/resin/webapps/TEST/testjsp
(5)得到页面所在服务器的绝对路径:absPath=new javaioFile(applicationgetRealPath(requestgetRequestURI()))getParent();
结果:D:/resin/webapps/TEST
2在类中取得路径:
(1)类的绝对路径:ClassclassgetClass()getResource("/")getPath()
结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/
(2)得到工程的路径:SystemgetProperty("userdir")
结果:D:/TEST
3在Servlet中取得路径:
(1)得到工程目录:requestgetSession()getServletContext()getRealPath("") 参数可具体到包名。
结果:E:/Tomcat/webapps/TEST
(2)得到IE地址栏地址:requestgetRequestURL()
结果:http://localhost:8080/TEST/test
(3)得到相对地址:requestgetRequestURI()
结果:/TEST/test
0条评论