以下是开发中的部分代码,可能并不全,但是起码可以知道思路是什么样的。
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框架处理文件上传,并将上传的图片以BLOB(Binary Large Object)类型存储在数据库中,同时提供下载功能。Hibernate则是一个对象关系映射(ORM)框架,它简化了数据库操作,...
在实际应用中,有时我们需要同时上传多个文件,这在Struts中是可以实现的。本篇文章将深入讲解如何在Struts框架中实现多文件上传。 首先,了解Struts2文件上传的基本原理。Struts2使用了Apache的Commons FileUpload...
总结,这个项目展示了如何结合Struts2的MVC架构、Apache POI的Excel处理能力和JDBC的数据库操作,实现从Excel文件批量导入数据到SQL Server 2000数据库的功能。这个过程涉及文件上传、数据读取、数据库交互等多个...
strtus2+hibernate文件上传及连接数据库操作,使用模拟http请求测试的,验证类是updateTest类,文件上传类是uplodController,连接数据库的操作时productController类
1. **.struts2配置**:在Struts2框架中,需要在`struts.xml`配置文件中添加相应的action配置,声明文件上传的处理方法。通常,你需要设置`<result>`类型为`stream`,以便处理上传的文件。 2. **Action类**:创建一...
总结起来,这个项目通过`uploadify`实现文件上传,利用Struts处理请求,结合Hibernate将文件以二进制形式存入数据库,再通过EasyUI创建用户友好的界面进行文件下载。整个流程涉及了前端交互、后端处理、数据库操作...
本项目结合两者实现了一个功能,即文件批量上传至数据库,并通过Ajax实现分页显示。 首先,我们需要理解Struts2的工作原理。Struts2框架通过Action类处理用户请求,每个Action对应一个业务逻辑。当用户发送请求时,...
在Struts2中实现文件上传是常见的需求,比如上传头像或文档。本篇文章将详细讲解如何利用Struts2框架来实现头像上传功能。 首先,我们需要在Struts2配置文件(struts.xml)中添加相关的action配置,以便处理文件...
本篇文章将详细讲解如何利用Struts2.2和Hibernate3.6实现文件的上传与动态下载。 **一、文件上传** 1. **环境配置**:首先,你需要一个集成开发环境,例如MyEclipse8.6,并安装所需的Struts2.21、JUnit4.8.2以及...
首先,理解多文件上传的基本原理至关重要。在Web应用中,文件上传通常依赖于HTTP协议的`multipart/form-data`编码类型,这种编码允许在表单提交时包含二进制数据(如文件)。Struts框架通过处理这些请求并将其转化为...
Struts是一个经典的Java web...这个项目是学习Struts框架、文件上传、数据库操作和JSP页面展示的良好实践,对于初学者来说,它涵盖了web开发中的多个核心概念。通过实际操作,可以更好地理解这些知识点并提高开发技能。
在这个特定的项目中,“SSH文件上传保存到Mysql数据库”指的是使用Struts2作为前端控制器,Spring作为依赖注入容器,以及Hibernate作为对象关系映射工具,实现文件上传功能并将数据存储到MySQL数据库的过程。...
由于文件比较大,所以就没有上传lib下面的架包,需要的可以自己去apache网站下载struts2的架包fileupload,io|logging|freemarker|mysql-connector-java|ognl|struts2-core|xwork 这些包。数据库在项目中。自己导入...
(注意:每一次重新部署项目到服务器,原来上传的文件都会被清空,所以最好将文件上传到数据库中,我这里为了实现简单的上传demo,是直接上传到tomcat服务器上的) 代码是韩娜老师的,感谢老师分享。(我的代码太杂...
在"struts上传文件及下载"的主题中,我们将深入探讨如何使用Struts2实现文件的上传与下载功能,以及如何将上传的文件存储到数据库并从数据库中检索用于下载。 1. **文件上传** - **Action配置**:首先,你需要创建...
通过这个项目,我们可以学习到Struts2的文件上传、数据库操作以及在页面上显示二进制数据等核心概念。在实际应用中,你可能还需要考虑错误处理、安全性(如防止SQL注入和非法文件上传)以及性能优化等方面的问题。
在这个实例中,我们将探讨如何在Struts框架下实现图片的上传功能,将图片保存到数据库,并在页面上显示出来。 首先,我们需要创建一个Action类来处理用户上传的图片。这个Action类通常会包含一个方法,如`execute()...
4. **文件存储**:上传的文件需要被存储在服务器上,你可以选择临时目录、特定的文件夹或者数据库等。Struts2提供了`CommonsFileUpload`库来帮助处理文件流,并将其保存到指定位置。 5. **异常处理**:文件上传可能...