点击下载ajax方式请求服务器
struts2 的action配置package com.dms.action;import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.PrintWriter;import org.apache.struts2.ServletActionContext;import com.dms.dao.ModelDao;
import com.dms.entity.Model;
import com.dms.util.OutUtil;
public class DownloadAction extends BaseAction{
private Model model;
private PrintWriter out = OutUtil.getOut();
private ModelDao modelDao = new ModelDao(); private InputStream is;
private String fileName;
public String download(){
try {
int id = model.getId();
String realPath = ServletActionContext.getServletContext().getRealPath("/upload");
String userFolder = "model_"+session.get("userId");
String fileName = modelDao.getModelById(id).getModelName();
String filePath = realPath + File.separatorChar +userFolder + File.separatorChar + fileName;
is = new FileInputStream(filePath);
//ServletActionContext.getServletContext().getResourceAsStream(filePath);
System.out.println(new File(filePath).length());
} catch (Exception e) {
e.printStackTrace();
}
return "success";
} public Model getModel() {
return model;
} public void setModel(Model model) {
this.model = model;
} public InputStream getIs() {
return is;
} public void setIs(InputStream is) {
this.is = is;
} public String getFileName() {
return fileName;
} public void setFileName(String fileName) {
this.fileName = fileName;
}
}我这样请求完服务器传回来is流 里边是.hsf格式的文件 在客户端怎么办 客户端ajax请求完相应到请求的地方了 然后就不知道怎么回事了 求指导extstruts
Do %stream.SetAttribute("ContentType","application/vnd.ms-excel")
Do %stream.SetAttribute("ContentDisposition","attachment;filename="_title_".xls" )
这个是M语言,类似设置一下java
不行啊 我下载的全是.hsf格式的文件 google浏览器可以这么做 IE这么做会在整个页面上显示乱码 我只能用IE 因为用了activeX