strusts2文件上传下载,以及二进制图片显示问题
2012-09-03 17:12
549 查看
1.文件上传
1.1页面
<s:file name="upload" id="logoUpLoad"></s:file>
也可以用html的<file> 标签
1.2action
public String getFileRealPath(String filename){
String realPath = uploadPath;
if(StringUtils.isNotBlank(uploadDir)){
if(realPath.endsWith(File.separator)){
realPath = realPath+uploadDir;
}else{
realPath = realPath+"/"+uploadDir;
}
}
if(realPath.endsWith(File.separator)){
realPath = realPath+filename;
}else{
realPath = realPath+"/"+filename;
}
System.out.println("上传路径:"+realPath);
return realPath;
}
/**
* 上传文件
* @return
*/
public String uploadFiles(){
if(upload == null || upload.length == 0){
addActionError("要上传的文件不存在,请先选择文件再上传");
return ERROR;
}
// deleteFiles();
//获得上传文件的路径
uploadedFileNames = new String[upload.length];
try {
for (int i = 0; i < upload.length; i++) {
if(!upload[i].exists()){
continue;
}
String filename = uploadFileName[i];
String name = DateUtils.convertDate2String
("yyyy_MM_dd_hh_mm_ss", new Date())+"_"+System.currentTimeMillis()
+"."+com.cbsi.saas.util.SAASStringUtils.getExtension(filename, "");
File destFile = new File(getFileRealPath(name));
//需要引入jar
FileUtils.copyFile(upload[i], destFile);
uploadedFileNames[i] = name;
}
} catch (IOException e) {
addActionError("上传文件失败,请稍候重试");
log.error("上传文件失败",e);
return ERROR;
}
return SUCCESS;
}
private String uploadDir;//子目录
private String uploadPath;//要上传的目标文件夹
private File[] upload;//要上传的文件
private String[] uploadFileName; //上传的文件名 (1.系统自动注入 2.变量命名有规则: 前台对象名+"FileName")
private String[] uploadedFileNames;//上传后的文件名称
private String[] deleteOnUploadFileNames;//当上传的时候,同时要删除的文件名
private String downloadfile;//要下载的文件名
服务器图片页面显示
/**
* 下载图片
*
* @return
*/
public String loadEnterpriseLogo() {
System.out.println("downLoad enterprise logo");
// 获得上传文件的路径
try {
File file = new File(getFileRealPath(enterprise.getTrademark()));
FileInputStream fileInputStream = new FileInputStream(file);
byte[] buffer = new byte[1024 * 4];
int bytesRead = 0;
sout = ServletActionContext.getResponse().getOutputStream();
while ((bytesRead = fileInputStream.read(buffer)) != -1) {
sout.write(buffer, 0, bytesRead);
}
fileInputStream.close();
sout.flush();
sout.close();
} catch (Exception e) {
}
return null;
}
<img
src="member/loadEnterpriseLogo.action?enterprise.trademark=${enterprise.trademark }"
width="450xp" height="150xp" />
1.1页面
<s:file name="upload" id="logoUpLoad"></s:file>
也可以用html的<file> 标签
1.2action
public String getFileRealPath(String filename){
String realPath = uploadPath;
if(StringUtils.isNotBlank(uploadDir)){
if(realPath.endsWith(File.separator)){
realPath = realPath+uploadDir;
}else{
realPath = realPath+"/"+uploadDir;
}
}
if(realPath.endsWith(File.separator)){
realPath = realPath+filename;
}else{
realPath = realPath+"/"+filename;
}
System.out.println("上传路径:"+realPath);
return realPath;
}
/**
* 上传文件
* @return
*/
public String uploadFiles(){
if(upload == null || upload.length == 0){
addActionError("要上传的文件不存在,请先选择文件再上传");
return ERROR;
}
// deleteFiles();
//获得上传文件的路径
uploadedFileNames = new String[upload.length];
try {
for (int i = 0; i < upload.length; i++) {
if(!upload[i].exists()){
continue;
}
String filename = uploadFileName[i];
String name = DateUtils.convertDate2String
("yyyy_MM_dd_hh_mm_ss", new Date())+"_"+System.currentTimeMillis()
+"."+com.cbsi.saas.util.SAASStringUtils.getExtension(filename, "");
File destFile = new File(getFileRealPath(name));
//需要引入jar
FileUtils.copyFile(upload[i], destFile);
uploadedFileNames[i] = name;
}
} catch (IOException e) {
addActionError("上传文件失败,请稍候重试");
log.error("上传文件失败",e);
return ERROR;
}
return SUCCESS;
}
private String uploadDir;//子目录
private String uploadPath;//要上传的目标文件夹
private File[] upload;//要上传的文件
private String[] uploadFileName; //上传的文件名 (1.系统自动注入 2.变量命名有规则: 前台对象名+"FileName")
private String[] uploadedFileNames;//上传后的文件名称
private String[] deleteOnUploadFileNames;//当上传的时候,同时要删除的文件名
private String downloadfile;//要下载的文件名
服务器图片页面显示
/**
* 下载图片
*
* @return
*/
public String loadEnterpriseLogo() {
System.out.println("downLoad enterprise logo");
// 获得上传文件的路径
try {
File file = new File(getFileRealPath(enterprise.getTrademark()));
FileInputStream fileInputStream = new FileInputStream(file);
byte[] buffer = new byte[1024 * 4];
int bytesRead = 0;
sout = ServletActionContext.getResponse().getOutputStream();
while ((bytesRead = fileInputStream.read(buffer)) != -1) {
sout.write(buffer, 0, bytesRead);
}
fileInputStream.close();
sout.flush();
sout.close();
} catch (Exception e) {
}
return null;
}
<img
src="member/loadEnterpriseLogo.action?enterprise.trademark=${enterprise.trademark }"
width="450xp" height="150xp" />
相关文章推荐
- struts2文件上传与下载与图片显示所遇到的问题
- WPF用流的方式上传/显示/下载图片文件(保存在数据库)
- 用C语言写的ISAPI上传文件(图片)、显示图片、图片存储以及可供其它语言调用的方式、和程序源代码
- springMVC高级部分(数据校验,数据错误回显(自定义格式错误显示),拦截器,异常处理,文件上传,文件下载,springmvc运行流程以及springmvc和struts2对比)
- java web上传、下载文件源码以及应该注意的问题
- [转]JSP或servlet中(以及上传下载文件)中文乱码或不显示的解决方案
- 解决WordPress无法上传媒体文件以及无法下载和安装主题与插件的问题
- apache与tomcat负载集群的方法与集群的文件同步问题和图片上传显示问题解决
- Spring文件上传下载and图片上传及前台显示
- 在数据库中 存储图片 以及 在界面中显示图片(存储图片路径)- 这种方法相对与存储二进制文件好
- Java 文件I/O常用API 以及上传下载路径问题汇总
- Webclient 文件异步下载以及上传,进度显示
- Control Study->AdRotator广告控件显示自定义配置文件中广告以及与DataGrid控件结合使用显示图片(示例代码下载)
- Control Study->AdRotator广告控件显示自定义配置文件中广告以及与DataGrid控件结合使用显示图片(示例代码下载)
- net3:文件上传与图片显示以及HiddenField隐藏字段值的使用
- JSP或servlet中(以及上传下载文件)中文乱码或不显示的解决方案
- 选择本地图片上传到服务器进行头像设置以及文件下载
- 第三方Girdview中文件下载的方法,以及js显示图片
- asp.net 将文件 二进制 上传 保存 再显示,解决文件流中文乱码问题。
- 文件上传下载and图片上传及前台显示