在Strut2的一个Action中,我用JFreeChart生成了一个图片。请问怎么把这个图片保存到MySql数据库呢,是直接保存图片好呢 还是保存图片路径好。希望大神们指点下 保存路径时候该怎么做啊
身上的没有金币了 所以挂的悬赏分有点少 希望大家给指点指点。
[code="java"]
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class MyUploadAction extends ActionSupport{
/*上传文件*/
private File file;
/*上传文件名称*/
private String fileFileName;
/*上传文件类型*/
private String fileContentType;
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
public String getFileFileName() {
return fileFileName;
}
public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}
public String getFileContentType() {
return fileContentType;
}
public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}
public String execute() throws Exception{
System.out.println(fileFileName);
System.out.println(fileContentType);
//确定上传路径
String dir =ServletActionContext.getServletContext().getRealPath("/upload");
System.out.println(dir);
File dirFile = new File(dir);
if(!dirFile.exists()){
dirFile.mkdir();
}
//创建文件输入字节流
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
//创建文件输出字节流
FileOutputStream fos = new FileOutputStream(new File(dirFile,fileFileName));
BufferedOutputStream bos = new BufferedOutputStream(fos);
byte[] bytes = new byte[1024];
int len = 0;
while((len = bis.read(bytes))!=-1){
bos.write(bytes, 0, len);
}
bis.close();
bos.close();
return "success";
}
}
[/code]
获取到jfreechart生成的图片流 将流写入磁盘文件 为文件命名的时候 获取磁盘文件的名字 存入到数据库
把图片保存到硬盘上,数据库里存路径。
一般都是保存路径.路径涉及到一个唯一文件名的构建和目录的组织.较为常用的是以日期为目录?
把路径存放到数据库就行了。
保存图片路径比较好,读取都方便。