在jsp页面中怎么获取文件上传路径的地址

在jsp页面中怎么获取文件上传路径的地址,第1张

java文件中获得路径

Thread.currentThread().getContextClassLoader().getResource("") //获得资源文件(.class文件)所在路径

ClassLoader.getSystemResource("")

Class_Name.class.getClassLoader().getResource("")

Class_Name.class .getResource("/")

Class_Name.class .getResource("") // 获得当前类所在路径

System.getProperty("user.dir") // 获得项目根目录的绝对路径

System.getProperty("java.class.path")//得到类路径和包路径

打印输出依次如下:

file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/

file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/

file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/

file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/

file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/com/xml/imp/

F:\work_litao\uri_test

F:\work_litao\uri_test\WebContent\WEB-INF\classesF:\work_litao\uri_test\WebContent\WEB-INF\lib\dom4j.jar

2、 JSP中获得当前应用的相对路径和绝对路径

根目录所对应的绝对路径:request.getRequestURI()

文件的绝对路径  :application.getRealPath(request.getRequestURI())

当前web应用的绝对路径 :application.getRealPath("/")

取得请求文件的上层目录:new File(application.getRealPath(request.getRequestURI())).getParent()

3.1 JSP中获得当前应用的相对路径和绝对路径

根目录所对应的绝对路径:request.getRequestURI()

文件的绝对路径  :application.getRealPath(request.getRequestURI())

当前web应用的绝对路径 :application.getRealPath("/")

取得请求文件的上层目录:new File(application.getRealPath(request.getRequestURI())).getParent()

3、Servlet中获得当前应用的相对路径和绝对路径

根目录所对应的绝对路径:request.getServletPath()

文件的绝对路径 :request.getSession().getServletContext().getRealPath(request.getRequestURI())

jsp中实现文件上传选择是通过input file=“file”实现的。

举例如下:

有一个如下内容的upload.jsp文件,用来选择要上传的文件:

<html>

<head>

<title>Jsp文件上传例子</title>

</head>

<body>

<form name="upform" action="UploadServlet" method="POST" enctype="multipart/form-data">

<input type ="file" name="file1" id="file1"/><br/>

<input type="submit" value="上传" /><br/>

<input type="reset" />

</form>

</body>

</html>

上面文件值得注意的地方:

1. action="UploadServlet" 必须和后面的web.xml配置文件中对servlet映射必须保持一致.

2. method="POST" 这里必须为"POST"方式提交不能是"GET".

3. enctype="multipart/form-data" 这里是要提交的内容格式,表示你要提交的是数据流,而不是普通的表单文本.

4. file1表示你要上传一个文件.

jsp上传下载文件的路径是在服务器建立指定路径如下:

//接收上传文件内容中临时文件的文件名

String tempFileName = new String("tempFileName")

//tempfile 对象指向临时文件

File tempFile = new File("D:/"+tempFileName)

//outputfile 文件输出流指向这个临时文件

FileOutputStream outputStream = new FileOutputStream(tempFile)

//得到客服端提交的所有数据

InputStream fileSourcel = request.getInputStream()

//将得到的客服端数据写入临时文件

byte b[] = new byte[1000]

int n

while ((n=fileSourcel.read(b))!=-1){

outputStream.write(b,0,n)

}

//关闭输出流和输入流

outputStream.close()

fileSourcel.close()

//randomFile对象指向临时文件

RandomAccessFile randomFile = new RandomAccessFile(tempFile,"r")

//读取临时文件的第一行数据

randomFile.readLine()

//读取临时文件的第二行数据,这行数据中包含了文件的路径和文件名

String filePath = randomFile.readLine()

//得到文件名

int position = filePath.lastIndexOf('\\')

CodeToString codeToString = new CodeToString()

String filename = codeToString.codeString(filePath.substring(position,filePath.length()-1))

//重新定位读取文件指针到文件头

randomFile.seek(0)

//得到第四行回车符的位置,这是上传文件数据的开始位置

long forthEnterPosition = 0

int forth = 1

while((n=randomFile.readByte())!=-1&&(forth<=4)){

if(n=='\n'){

forthEnterPosition = randomFile.getFilePointer()

forth++

}

}

//生成上传文件的目录

File fileupLoad = new File("D:/work space/JSP workspace/jsp_servlet_upAndLoad/file","upLoad")

fileupLoad.mkdir()

//saveFile 对象指向要保存的文件

File saveFile = new File("D:/work space/JSP workspace/jsp_servlet_upAndLoad/file/upLoad",filename)

RandomAccessFile randomAccessFile = new RandomAccessFile(saveFile,"rw")

//找到上传文件数据的结束位置,即倒数第四行

randomFile.seek(randomFile.length())

long endPosition = randomFile.getFilePointer()

int j = 1

while((endPosition>=0)&&(j<=4)){

endPosition--

randomFile.seek(endPosition)

if(randomFile.readByte()=='\n'){

j++

}

}

//从上传文件数据的开始位置到结束位置,把数据写入到要保存的文件中

randomFile.seek(forthEnterPosition)

long startPoint = randomFile.getFilePointer()

while(startPoint<endPosition){

randomAccessFile.write(randomFile.readByte())

startPoint = randomFile.getFilePointer()

}

//关闭文件输入、输出

randomAccessFile.close()

randomFile.close()

tempFile.delete()

jsp文件下载选择路径:

//要下载的文件

File fileload = new File("D:/work space/JSP workspace/jsp_servlet_upAndLoad/file/upLoad",filename)


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

原文地址: http://outofmemory.cn/tougao/8051428.html

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

发表评论

登录后才能评论

评论列表(0条)

保存