怎么把Action生成的图片保存到数据库 。

在Strut2的一个Action中,我用JFreeChart生成了一个图片。请问怎么把这个图片保存到MySql数据库呢,是直接保存图片好呢 还是保存图片路径好。希望大神们指点下 保存路径时候该怎么做啊
身上的没有金币了 所以挂的悬赏分有点少 希望大家给指点指点。

6个回答

[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生成的图片流 将流写入磁盘文件 为文件命名的时候 获取磁盘文件的名字 存入到数据库

把图片保存到硬盘上,数据库里存路径。

一般都是保存路径.路径涉及到一个唯一文件名的构建和目录的组织.较为常用的是以日期为目录?

呵呵...

把路径存放到数据库就行了。

保存图片路径比较好,读取都方便。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!