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条)

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记