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使用流输出给客户端。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)