博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 文件上传数据库
阅读量:6957 次
发布时间:2019-06-27

本文共 2486 字,大约阅读时间需要 8 分钟。

存储文件的数据库类型:

     1.oracle :Blob,bfile类型

     2.mysql:longblob类型

     3.sqlserver :varbinary(Max)类型

 

文件都是以二进制流存入数据库的,因此,在文件上传后,我们要将文件转换为byte[],然后通过import java.io.File;处理成byte存放到数据库。

以下为数据操作类(java):

package com.yunztec.eprj.util;import java.io.BufferedOutputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class FileOperateUtil {   private static FileOperateUtil fpu=new FileOperateUtil();   public static FileOperateUtil getInstance(){  return fpu; }    public byte[] getBytes(File file){         byte[] buffer = null;            try {                   FileInputStream fis = new FileInputStream(file);                ByteArrayOutputStream bos = new ByteArrayOutputStream(1000);                byte[] b = new byte[1000];                int n;                while ((n = fis.read(b)) != -1) {                    bos.write(b, 0, n);                }                fis.close();                bos.close();                buffer = bos.toByteArray();            } catch (FileNotFoundException e) {                e.printStackTrace();            } catch (IOException e) {                e.printStackTrace();            }          return buffer;   }   public String writeFileToService(byte[] bt, String filePath,String fileName) {          BufferedOutputStream bos = null;          FileOutputStream fos = null;          File file = null;          try {              File dir = new File(filePath);            System.out.println(dir.exists());            if(!dir.exists()){
//判断文件目录是否存在 dir.mkdirs(); } file = new File(filePath+"\\"+fileName); fos = new FileOutputStream(file); bos = new BufferedOutputStream(fos); bos.write(bt); } catch (Exception e) { e.printStackTrace(); } finally { if (bos != null) { try { bos.close(); } catch (IOException e1) { e1.printStackTrace(); } } if (fos != null) { try { fos.close(); } catch (IOException e1) { e1.printStackTrace(); } } } return filePath+"\\"+fileName;   }}

 

总结:

1.上传:  file----->byte[]   

2.下载: byte[]------->File---->存到服务器--->提供路径---->下载完成后删除服务器文件。

转载地址:http://ajmil.baihongyu.com/

你可能感兴趣的文章
auto_ptr
查看>>
Windows系统的消息机制
查看>>
谈谈java中静态变量与静态方法在有继承关系的两个类中调用
查看>>
基础练习 十六进制转八进
查看>>
Python OS 文件操作模块常用函数
查看>>
Spark on Yarn作业运行架构原理解析
查看>>
Asp.net mvc 4下的html编辑器-HTMLBox
查看>>
Android客户端应用享用传统Web服务
查看>>
人工智能赢了人类,那又如何?
查看>>
跟我一起学Oracle 11g【4】----Oracle的体系结构
查看>>
Shell中字符串、数值的比较
查看>>
内存管理
查看>>
zedGraph 图表控件总结(一)
查看>>
poj1042
查看>>
动态加载jar 并进行调用
查看>>
Arg_parser 1.8 发布,C++ 参数解析库
查看>>
Design Patterns in Smalltalk MVC 在Smalltalk的MVC设计模式
查看>>
PHPCMS教程
查看>>
技术人生:态度决定人生
查看>>
Chapter 2 -- Preconditions
查看>>