上传文件到数据库和服务器

发布时间:2020-07-25 18:13:57 作者:建波李
来源:网络 阅读:620

上传文件我们需要做三步。

①在页面中能选择文件上传;

②能够将二进制数据转为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());
		}
		 //上传成功
	}


文件已字节形式存储到数据库中。

MySQL数据库中BLOB类型分为以下四种

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列存储文件定位程序,此定位程序指向服务器上的大型二进制文件。




推荐阅读:
  1. 上传文件到ftp
  2. idea上传文件到SVN

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

上传文件 库和

上一篇:云主机未来将会如何发展

下一篇:thinkphp3.2 comon目录下function.php 中方法找不到bug

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》