jsp 下载文件路径问题

jsp 下载文件路径问题,第1张

下载文件有两种方式。

1.是在你的服务器上能相对找到。

即 http://localhost8080/web 这个映射的是你服务器上的 D:\web 这个目录

那么你这个文件就要在 D:\web 这个目录中。

比如 D:\web\downfile\111.xls

你的超链接可以这样写。 <a href="/downfile/111.xls">download</a>

2.就是用流的方式下载。

<a href="#" onclilck="......">download</a>

这样的超链接就不是指向一个文件了,而是向服务器提交下载申请。

这样执行到你后台的servlet类中,你可以根据一些必要的标识知道你要下载的文件。

这样你把D:\111.xls文件读取出来。 然后写入到response.getOutPutStream (这个方法有些记不清了,你查一下) 这样实现下载。

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)

你点击导出也就是从你的服务器上把那个文件下载下来而已

1.直接把你的文件在服务器上的路径给客户端点击下载。

2.在服务端获取文件,用response使用流输出给客户端。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/237438.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存