十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
上传文件我们需要做三步。
主要从事网页设计、PC网站建设(电脑版网站建设)、wap网站建设(手机版网站建设)、成都响应式网站建设公司、程序开发、微网站、微信小程序开发等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了丰富的成都网站制作、成都网站设计、外贸营销网站建设、网络营销经验,集策划、开发、设计、营销、管理等多方位专业化运作于一体,具备承接不同规模与类型的建设项目的能力。
①在页面中能选择文件上传;
②能够将二进制数据转为byte数组,然后存入数据库中,注意数据库字段的类型;
③将文件保存到服务器。
@RequestMapping(value = "/upload") public void upload(UpLoadFile uploadFile) throws Exception { String msg = "上传成功!"; String originalFilename = uploadFile.getFile().getOriginalFilename(); long size = uploadFile.getFile().getSize(); String contentType = uploadFile.getFile().getContentType(); String uploadRoot = "xxx";// 服务器根路径 String folder = ""; folder = uploadRoot + folder; folder = StringUtils.replace(folder, "\\", "/"); File dir = new File(folder); if (!dir.exists()) { if (!dir.mkdirs()) { throw new Exception("creating directory failed!"); } } folder += "/" + "上传的文件名"; File outFile = new File(folder); byte[] appwar = uploadFile.getFile().getBytes();// 文件转byte 字节类型 // me.setAppwar(appwar);//MySQL数据库中用longblob类型来存储,最大单个存储文件为4G // this.mobileverDao.insert(me); try { uploadFile.getFile().transferTo(outFile);// 文件上传到服务器的地址 //使用transferTo(dest)方法将上传文件写到服务器上指定的文件。 } catch (IllegalStateException e) { throw new Exception("upload file is error!\n" + e.getMessage()); } //上传成功 }
文件已字节形式存储到数据库中。
TINYBLOB可变长二进制数据,最多255个字节
BLOB可变长二进制数据,最多2的16次方-1个字节 即64K
MEDIUMBLOB可变长二进制数据,最多2的24次方-1个字节 即16M
LONGBLOB可变长二进制数据,最多2的32次方-1个字节 即4G
这几个类型之间的唯一区别是在存储文件的最大大小不同。
Oralce数据库中大数据类型分为BLOB和BFILE 两种,其中BLOB分为以下三种
BLOB全称为二进制大型对象(Binary Large Object)。它用于存储数据库中的大型二进制对象。可存储的最大大小为4G字节CLOB CLOB全称为字符大型对象(Character Large Object)。它与LONG数据类型类似,只不过CLOB用于存储数据库中的大型单字节字符数据块,不支持宽度不等的字符集。可存储的最大大小为4G字节NCLOB 基于国家语言字符集的NCLOB数据类型用于存储数据库中的固定宽度单字节或多字节字符的大型数据块,不支持宽度不等的字符集。可存储的最大大小为4G字节
BFILE 当大型二进制对象的大小大与4G字节时,BFILE数据类型用于将其存储在数据库外的操作系统文件中;当其大小不足4G字节时,则将其存储在数据库内部的操作系统文件中,BFILE列存储文件定位程序,此定位程序指向服务器上的大型二进制文件。