wang_fenghua 2011-05-13 10:05
浏览 295
已采纳

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

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

  • 写回答

6条回答 默认 最新

  • slightwei 2011-05-13 11:16
    关注

    [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]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题