`

struts上传文件至数据库

    博客分类:
  • java
 
阅读更多

以下是开发中的部分代码,可能并不全,但是起码可以知道思路是什么样的。

public PicAttachment addAttachment(FormFile f) throws TSDBException, FileNotFoundException, IOException {
		PicAttachment pic = new PicAttachment();
		pic.setContenttype(f.getContentType());
		pic.setFilesize(new Long(f.getFileSize()));
		pic.setUploaddate(new Date());
		// 上传文件实体类名
		pic.setUploadType("JzglAllotInfoWz");
		// 原文件名
		pic.setRealFilename(f.getFileName());
                //作为byte数组放入数据库中
		pic.setUploadFile(f.getFileData());
		pic.setUseFlag(new Long(Constants.USE_FLAG.USE_FLAG_ON.longValue()));

		String filePath = ConfigPath.getRootPath("picPath");
		String newPath = "bjjz/";
		String fileName = FileUtils.getRandomFileName(f.getFileName());
		boolean isTrue = copyFile(f, filePath + newPath, fileName, pic);
		pic.setFilename(newPath + fileName);
		if (!isTrue) {
			// throw new TSDBException("Upload file Error");
		}
		return pic;
	}

protected static boolean copyFile(FormFile file, String path, String fileName, PicAttachment pic) {
		try {
			InputStream stream = file.getInputStream();
			OutputStream bos = new FileOutputStream(path + fileName);
			FileCollection excahngeFile = new FileCollection(fileName, "bjjz/");
			stream = excahngeFile.addFile(stream);
			int bytesRead = 0;
			byte[] buffer = new byte[10240];
			while ((bytesRead = stream.read(buffer)) != -1) {
				bos.write(buffer, 0, bytesRead);
			}
			// pic.setUploadFile(buffer);
			bos.close();
			stream.close();
			// 数据交换
			ExcahngeUitl.post(excahngeFile, DataPost.SAVE_FILE);
			return true;
		} catch (Exception e) {
			Logger.error("Write file error ! " + e.getMessage());
		}
		return false;
	}

 

public class FileCollection implements Serializable {

	private String name; //文件名 
	private String prefixPath;  //文件前缀路径
	private byte bata[];

    /**
     * 设置文件信息
     * @param fileName 文件名
     * @param prefixPath 文件前缀路径
     * @throws IOException
     */
	public FileCollection(String fileName,String prefixPath) throws IOException {
		name = fileName;
		this.prefixPath=prefixPath;
	}
	
	/**
	 * 添加文件流
	 * @param stream 输入流
	 * @throws IOException
	 */
	public InputStream addFile(InputStream stream) throws IOException{
		bata = FileUtils.toByteArray(stream);
		return stream= new ByteArrayInputStream(ArrayUtils.clone(bata));
	}

 hibernate对于上传文件的配置方式:

<property column="UPLOADFILE" length="4000" name="uploadFile" type="com.topsuntech.gOS.query.type.OracleBlobType" not-null="false"/>

分享到:
评论

相关推荐

    struts2文件上传下载源代码

    在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...

    Struts2上传图片存数据库

    在本案例中,我们探讨的是如何利用Struts2框架处理文件上传,并将上传的图片以BLOB(Binary Large Object)类型存储在数据库中,同时提供下载功能。Hibernate则是一个对象关系映射(ORM)框架,它简化了数据库操作,...

    struts上传多文件

    在实际应用中,有时我们需要同时上传多个文件,这在Struts中是可以实现的。本篇文章将深入讲解如何在Struts框架中实现多文件上传。 首先,了解Struts2文件上传的基本原理。Struts2使用了Apache的Commons FileUpload...

    struts2 Excel导入数据库

    总结,这个项目展示了如何结合Struts2的MVC架构、Apache POI的Excel处理能力和JDBC的数据库操作,实现从Excel文件批量导入数据到SQL Server 2000数据库的功能。这个过程涉及文件上传、数据读取、数据库交互等多个...

    struts2+hibernate文件上传以及连接数据库操作

    strtus2+hibernate文件上传及连接数据库操作,使用模拟http请求测试的,验证类是updateTest类,文件上传类是uplodController,连接数据库的操作时productController类

    struts2文件上传实例

    1. **.struts2配置**:在Struts2框架中,需要在`struts.xml`配置文件中添加相应的action配置,声明文件上传的处理方法。通常,你需要设置`&lt;result&gt;`类型为`stream`,以便处理上传的文件。 2. **Action类**:创建一...

    struts+hibernate实现文件上传、下载,以二进制存于数据库

    总结起来,这个项目通过`uploadify`实现文件上传,利用Struts处理请求,结合Hibernate将文件以二进制形式存入数据库,再通过EasyUI创建用户友好的界面进行文件下载。整个流程涉及了前端交互、后端处理、数据库操作...

    struts2+hibernate(文件批量上传至数据库+Ajax分页显示)

    本项目结合两者实现了一个功能,即文件批量上传至数据库,并通过Ajax实现分页显示。 首先,我们需要理解Struts2的工作原理。Struts2框架通过Action类处理用户请求,每个Action对应一个业务逻辑。当用户发送请求时,...

    Struts2文件上传

    在Struts2中实现文件上传是常见的需求,比如上传头像或文档。本篇文章将详细讲解如何利用Struts2框架来实现头像上传功能。 首先,我们需要在Struts2配置文件(struts.xml)中添加相关的action配置,以便处理文件...

    struts与hibernate实现文件的上传与动态下载

    本篇文章将详细讲解如何利用Struts2.2和Hibernate3.6实现文件的上传与动态下载。 **一、文件上传** 1. **环境配置**:首先,你需要一个集成开发环境,例如MyEclipse8.6,并安装所需的Struts2.21、JUnit4.8.2以及...

    struts多文件上传

    首先,理解多文件上传的基本原理至关重要。在Web应用中,文件上传通常依赖于HTTP协议的`multipart/form-data`编码类型,这种编码允许在表单提交时包含二进制数据(如文件)。Struts框架通过处理这些请求并将其转化为...

    struts文图片上传 并存入数据库 在jsp页面显示

    Struts是一个经典的Java web...这个项目是学习Struts框架、文件上传、数据库操作和JSP页面展示的良好实践,对于初学者来说,它涵盖了web开发中的多个核心概念。通过实际操作,可以更好地理解这些知识点并提高开发技能。

    SSH文件上传保存到MySql数据库

    在这个特定的项目中,“SSH文件上传保存到Mysql数据库”指的是使用Struts2作为前端控制器,Spring作为依赖注入容器,以及Hibernate作为对象关系映射工具,实现文件上传功能并将数据存储到MySQL数据库的过程。...

    struts2的数据库操作和文件的上传下载

    由于文件比较大,所以就没有上传lib下面的架包,需要的可以自己去apache网站下载struts2的架包fileupload,io|logging|freemarker|mysql-connector-java|ognl|struts2-core|xwork 这些包。数据库在项目中。自己导入...

    struts2文件上传下载(jsp)

    (注意:每一次重新部署项目到服务器,原来上传的文件都会被清空,所以最好将文件上传到数据库中,我这里为了实现简单的上传demo,是直接上传到tomcat服务器上的) 代码是韩娜老师的,感谢老师分享。(我的代码太杂...

    struts上传文件及下载

    在"struts上传文件及下载"的主题中,我们将深入探讨如何使用Struts2实现文件的上传与下载功能,以及如何将上传的文件存储到数据库并从数据库中检索用于下载。 1. **文件上传** - **Action配置**:首先,你需要创建...

    关于struts2.1.6上传图片到数据库的简单项目

    通过这个项目,我们可以学习到Struts2的文件上传、数据库操作以及在页面上显示二进制数据等核心概念。在实际应用中,你可能还需要考虑错误处理、安全性(如防止SQL注入和非法文件上传)以及性能优化等方面的问题。

    struts下上传图片到数据库并显示到页面实例

    在这个实例中,我们将探讨如何在Struts框架下实现图片的上传功能,将图片保存到数据库,并在页面上显示出来。 首先,我们需要创建一个Action类来处理用户上传的图片。这个Action类通常会包含一个方法,如`execute()...

    struts文件上传和下载

    4. **文件存储**:上传的文件需要被存储在服务器上,你可以选择临时目录、特定的文件夹或者数据库等。Struts2提供了`CommonsFileUpload`库来帮助处理文件流,并将其保存到指定位置。 5. **异常处理**:文件上传可能...

Global site tag (gtag.js) - Google Analytics