采用JQuery和Ftp方式上传下载,现在上传已经没有问题,但是下载的时候,可以正常返回,但是返回的只是文件的内容,而不是弹出一个对话框进行保存。请各位大侠帮忙指导下。
function downloadFile(sn_id){
alert('下载'+sn_id);
var sendurl ='"+req.getContextPath()+"/file.do?operate=downLoadFromFtp&sn='+sn_id;
$.ajax({
url:sendurl,
type:'GET',
error:function(data){
alert('失败');
}, ");
success:function(data){
alert('下载成功123');
$('#attlist').html(data);
// slideDialog($('#fileRetMsg').val());
data.execCommand('SaveAs')
}
});
}
JS没问题,可能粘过来少点东西
resp.setContentType("text/html");
javax.servlet.ServletOutputStream out = resp.getOutputStream();
// 读取文件流
//java.io.FileInputStream fileInputStream = is.;
// 下载文件
// 设置响应头和下载保存的文件名
if (is != null) {
resp.setContentType("APPLICATION/OCTET-STREAM; charset=gbk");
resp.setHeader("Content-Disposition", "inline;filename=\"" + new String(atta.getOriginal_name().getBytes("gbk"),"iso8859-1")+"\"");
int filelen = is.available();
//文件太大时内存不能一次读出,要循环
byte a[] = new byte[1024];
while(is.read(a)!=-1){
out.write(a);
}
}
is.close();
out.close();
function downloadFile(sn_id){
alert('下载'+sn_id);
var sendurl ='"+req.getContextPath()+"/file.do?operate=downLoadFromFtp&sn='+sn_id;
$.ajax({
url:sendurl,
type:'GET',
error:function(data){
alert('失败');
}, ");
success:function(data){
alert('下载成功123');
$('#attlist').html(data);
// slideDialog($('#fileRetMsg').val());
data.execCommand('SaveAs')
}
});
}
JS没问题,可能粘过来少点东西
resp.setContentType("text/html");
javax.servlet.ServletOutputStream out = resp.getOutputStream();
// 读取文件流
//java.io.FileInputStream fileInputStream = is.;
// 下载文件
// 设置响应头和下载保存的文件名
if (is != null) {
resp.setContentType("APPLICATION/OCTET-STREAM; charset=gbk");
resp.setHeader("Content-Disposition", "inline;filename=\"" + new String(atta.getOriginal_name().getBytes("gbk"),"iso8859-1")+"\"");
int filelen = is.available();
//文件太大时内存不能一次读出,要循环
byte a[] = new byte[1024];
while(is.read(a)!=-1){
out.write(a);
}
}
is.close();
out.close();
解决方案 »
- 求这些专业术语的正确读法(比如JSON)
- 求一个正则表达式
- 例:下面这段验证代码,我在输入框里输入6,7,8,9就会触发js函数,输入20,30什么的都正常,这是怎么回事啊?
- js中的static
- 一段字符滚动出现的代码,看不大懂,谁能帮忙注释一下
- 解释一下一小段javascript代码
- <script language="javascript" defer>與<script language="javascript">的區別?
- 搞了半天了,还是没搞定!
- 高手来吧,不难的!
- 怪事,onmousemove好像不起作用,今天我一定要搞定,请大家看看
- 帮我解释下这段代码
- jquery之return false
inline --- 在线打开试试看吧,我是.net的...没法测试你的java代码,但是协议,不会错.
Content-disposition是MIME协议的扩展,由于多方面的安全性考虑没有被标准化,所以可能某些浏览器不支持,比如说IE4.01