问题描述
在Strut2的一个Action中,我用JFreeChart生成了一个图片。请问怎么把这个图片保存到MySql数据库呢,是直接保存图片好呢 还是保存图片路径好。希望大神们指点下 保存路径时候该怎么做啊 身上的没有金币了 所以挂的悬赏分有点少 希望大家给指点指点。
解决方案
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";}}
解决方案二:
保存图片路径比较好,读取都方便。
解决方案三:
把路径存放到数据库就行了。
解决方案四:
一般都是保存路径.路径涉及到一个唯一文件名的构建和目录的组织.较为常用的是以日期为目录?呵呵...-
解决方案五:
把图片保存到硬盘上,数据库里存路径。
解决方案六:
获取到jfreechart生成的图片流 将流写入磁盘文件 为文件命名的时候 获取磁盘文件的名字 存入到数据库