本文目录一览:
- 1、jsp中mp3文件下载要怎么实现?
- 2、jsp 下载文件路径问题
- 3、jsp实现文件的下载
- 4、jsp页面如何实现下载文档
- 5、jsp 如何实现文件上传和下载功能?
- 6、jsp如何实现文件上传与下载?
jsp中mp3文件下载要怎么实现?
有很多种方式:
1、直接request.sendredirect("music/test.mp3");
2、如果你想隐藏路径:
RequestDispatcher rd = sc.getRequestDispatcher("/music/test.mp3").forward(request, response);
3、或者直接用流的方式返回给用户。
如果返回mp3文件浏览器直接打开乱码文件,你需要在web.xml添加mime映射:
mime-mapping
extensionmp3/extension
mime-typeaudio/x-mpeg/mime-type
/mime-mapping
jsp 下载文件路径问题
下载文件有两种方式。
1.是在你的服务器上能相对找到。
即 这个映射的是你服务器上的 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实现文件的下载
%@pagelanguage="java" import="java.io.*,java.net.*" contentType="application/x-msdownload" pageEncoding="UTF-8"%%
//关于文件下载时采用文件流输出的方式处理:
//加上response.reset(),并且所有的%后面不要换行,包括最后一个;
String url = request.getParameter("url");
System.out.print(url);
int k = url.lastIndexOf("\\");
String url1=url.substring(k+1,url.length());
response.reset();//可以加也可以不加
response.setContentType("application/x-download");
String filedownload = url;
String filedisplay = url1;
filedisplay = URLEncoder.encode(filedisplay,"UTF-8");
response.addHeader("Content-Disposition","attachment;filename=" + filedisplay);
OutputStream outp = null;
FileInputStream in = null;
try
{
outp = response.getOutputStream();
in = new FileInputStream(filedownload);
byte[] b = new byte[1024];
int i = 0;
while((i = in.read(b)) 0)
{
outp.write(b, 0, i);
}
out.clear();
out = pageContext.pushBody();
outp.flush();
}
catch(Exception e)
{
System.out.println("Error!");
}
finally
{
if(in != null)
{
in.close();
in = null;
}
if(outp != null)
{
outp.close();
outp = null;
}
}
%
jsp页面如何实现下载文档
jsp页面下载文档是在jsp中有一个a标签 ,当用户点击a标签的时候下载文件。
一般采用href属性直接指向一个服务器地址,只要链接的文件存在,就会给出弹出保存对话框.
点击a标签 先执行onclick事件,再请求href中指向的地址。
前端jsp:
a href="#" onclick="javascript:downloadtest('${app.id}')" id="pluginurl" style="color: #83AFE2;text-decoration:underline;"/a
然后在js中:
function downloadtest(id){
var url = "%=request.getContextPath()%/app/download" + "/" + id;
$("#pluginurl").attr("href",url);
}
后台处理下载逻辑的java代码:
/**
* 下载文件
* @param id appid
* @param response
*/
@RequestMapping(value="/download/{id}")
public void download(@PathVariable String id, HttpServletResponse response){
String filepath = "";
Result result = appService.getAppById(id);
App app = (App) result.getMap().get("app");
if(app == null){
return;
}
filepath = app.getUrl();
File file = new File(filepath);
InputStream inputStream = null;
OutputStream outputStream = null;
byte[] b= new byte[1024];
int len = 0;
try {
inputStream = new FileInputStream(file);
outputStream = response.getOutputStream();
response.setContentType("application/force-download");
String filename = file.getName();
filename = filename.substring(36, filename.length());
response.addHeader("Content-Disposition","attachment; filename=" + URLEncoder.encode(filename, "UTF-8"));
response.setContentLength( (int) file.length( ) );
while((len = inputStream.read(b)) != -1){
outputStream.write(b, 0, len);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
if(inputStream != null){
try {
inputStream.close();
inputStream = null;
} catch (IOException e) {
e.printStackTrace();
}
}
if(outputStream != null){
try {
outputStream.close();
outputStream = null;
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
jsp 如何实现文件上传和下载功能?
上传:
MyjspForm mf = (MyjspForm) form;// TODO Auto-generated method stub
FormFile fname=mf.getFname();
byte [] fn = fname.getFileData();
OutputStream out = new FileOutputStream("D:\\"+fname.getFileName());
Date date = new Date();
String title = fname.getFileName();
String url = "d:\\"+fname.getFileName();
Upload ul = new Upload();
ul.setDate(date);
ul.setTitle(title);
ul.setUrl(url);
UploadDAO uld = new UploadDAO();
uld.save(ul);
out.write(fn);
out.close();
下载:
DownloadForm downloadForm = (DownloadForm)form;
String fname = request.getParameter("furl");
FileInputStream fi = new FileInputStream(fname);
byte[] bt = new byte[fi.available()];
fi.read(bt);
//设置文件是下载还是打开以及打开的方式msdownload表示下载;设置字湖集,//主要是解决文件中的中文信息
response.setContentType("application/msdownload;charset=gbk");
//文件下载后的默认保存名及打开方式
String contentDisposition = "attachment; filename=" + "java.txt";
response.setHeader("Content-Disposition",contentDisposition);
//设置下载长度
response.setContentLength(bt.length);
ServletOutputStream sos = response.getOutputStream();
sos.write(bt);
return null;
jsp如何实现文件上传与下载?
如果服务器端程序使用的是struts2框架的话,我会,其他的不会。
struts2:
对于上传,jsp页面只需要有个file类型的表单域,如input type="file" name="xxx" /
struts2的接收请求的action中再写三个属性与这个表单域的名称对应起来,他们是,File类型的xxx,String类型的xxxFileName,String类型的xxxContentType,并其设置相应的set/get方法。则框架负责接收上传文件的字节流,解析文件名,文件类型,直接使用即可。
对于下载,只需要在action的配置文件中设置如下返回值类型和相应参数:
result type="stream"
param name="contentType"application/octet-stream/param
param name="inputName"inputStream/param
param name="contentDisposition"attachment;filename=xxx /param xxx为下载文件的文件名
/result
且在action总写一个返回值类型为InputStream的getInputStream方法,此方法返回你要下载的文件的流即可。
ps:其中contentDisposition的配置信息中attachment代表点击下载时浏览器先弹出个保存位置的提示框,然后再决定是否下载,默认是inline,即直接打开文件。