最近在做一个Struts2+spring+hibernate的文件上传,单元测试没有问题,不过,这个存入数据库的Blob对象是通过new关键字创造一个文件对象,然后创建一个输入流fin,再用Hiberante.createBlob(fin)生成的.但是,我想从JSP页面的文件域里面取得一个文件对象,然后再创建Blob,部分代码如下:
public Integer uploadImage(Integer userId,List <String> title,List <File> photos) throws BlogException {
List <File> files = photos ;//从页面上来的文件对象列表
int length = files.size();
List <String> titles = title;//文件标题列表
Integer pId = null;
for(int i = 0 ; i < length ; i++){
try {
/**从列表中取出一个文件对象,用来创建一个输入流(就在这个地方出现了" InputStream cannot be resolved"问题,这是断点调试时的结果)最后在
JSP异常页面打印出的异常信息是:"java.lang.ClassCastException: java.lang.String "**/
InputStream fin = new FileInputStream(files.get(i));
Blob photoContext = Hibernate.createBlob(fin);
Photo photo = new Photo();
User user = userDao.get(userId);
photo.setUser(user);
photo.setTitle(titles.get(i));
photo.setPhotocontext(photoContext);
photoDao.save(photo);
pId = photo.getPhotoId();
} catch (FileNotFoundException e) {
e.printStackTrace();
throw new BlogException("上传文件没有找到,请检查操作是否合法!");
} catch (IOException e) {
e.printStackTrace();
throw new BlogException("IO操作异常!");
}
}
return pId;
}
敬请各位前辈指教!小弟不胜感激!!
分享到:
相关推荐
然而,`InputStream`的设计是按顺序读取字节流,一旦流被读取,数据就会被消耗掉,无法再次读取。这在处理需要多次解析或持久化输入流内容的场景下会带来困扰。本篇文章将详细讲解如何在Spring Boot应用中解决`...
当你遇到"The import gnu cannot be resolved"错误时,这通常意味着你的项目缺少对RXTX库的正确引用或者版本不匹配。 RXTX库提供了Java应用程序与硬件设备之间通信的能力,比如通过串行端口连接到Arduino、GPS接收...
在Java编程中,`InputStream`是Java I/O流的基础类,用于从各种输入源读取数据。它提供了读取原始字节的基本方法,是所有字节输入流的超类。当我们遇到“Java InputStream读取数据问题”时,通常涉及到如何正确、...
### Blob、InputStream、byte 互转 在Java开发过程中,我们经常会遇到数据格式转换的问题,尤其是在处理二进制数据如图片、文件等时。本文将详细介绍如何实现`Blob`、`InputStream`、`byte[]`之间的相互转换,并...
Java中的`InputStream`类是处理字节输入流的核心类,它是所有字节输入流类的超类,位于Java的`java.io`包中。作为抽象类,`InputStream`定义了一系列基本的方法来读取字节数据,这些方法由其子类进行具体实现。`...
关于InputStream和OutputStream关于InputStream和OutputStream关于InputStream和OutputStream关于InputStream和OutputStream
在Java编程中,有时我们可能需要将一个已经写入数据的`OutputStream`转换为`InputStream`,以便重新读取这些数据。这种情况通常出现在临时存储或处理数据时,例如在网络传输或者存储到内存中的场景。本篇文章将深入...
读取网络字节流 php stream 二进制
IO流文档InputStream / OutputStream IO流是一种基本的数据交换方式,在Java中,IO流是通过输入流(InputStream)和输出流(OutputStream)来实现的。输入流用于读取数据,而输出流用于写入数据。 InputStream是...
深入剖析tomcat第三章SocketInputStream源码 * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util/StringManager.java,v 1.2 2001/07/22 20:25:14 pier Exp $ * $Revision: 1.2...
在Java编程语言中,`InputStream`和`OutputStream`是处理数据流的核心类,它们属于Java的I/O(Input/Output)框架。`File`类则用于处理文件操作,如读写、创建、删除等。理解如何在这些对象之间进行转换是Java开发中...
Java SE程序 文件的拷贝InputStream类Java SE程序 文件的拷贝InputStream类Java SE程序 文件的拷贝InputStream类Java SE程序 文件的拷贝InputStream类Java SE程序 文件的拷贝InputStream类Java SE程序 文件的拷贝...
标题 "INPUTSTREAM" 指的是 Java 中的核心输入流类 `InputStream`,它是所有字节输入流的基类。在Java I/O系统中,`InputStream` 提供了从各种数据源读取字节数据的基本方法。这篇博客文章可能详细解析了 `...
Socket中的InputStream的`read`方法是Java网络编程中一个核心的概念,它在处理客户端与服务器之间的数据传输时起着至关重要的作用。`read`方法的阻塞特性是其设计的一个重要特点,也是理解多线程和并发编程的关键点...
inputstream读取数据的问题,对你的file的帮组是很大的。
`readLine(byte[] b, int off, int len)` 方法是 `ServletInputStream` 提供的一个方法,用于读取输入流中的一行数据。这个方法在处理文本数据时非常有用,因为它可以方便地按行读取数据,而不仅仅是单个字节。 在...
Java 实现 InputStream 流的复制代码实例 本文主要介绍了 Java 实现 InputStream 流的复制代码实例,通过示例代码详细地介绍了如何复制 InputStream 对象,并提供了实际的应用场景和解决方案。 InputStream 基础...
### Java.io.Reader与Java.io.InputStream的关键差异解析 在深入探讨`java.io.Reader`与`java.io.InputStream`的具体差异之前,我们首先需要理解这两者在Java I/O操作中的基础角色。`java.io.Reader`和`java.io....
在本教程中,我们将探讨如何利用JSoup结合InputStream来爬取并下载网络上的图片。 首先,我们需要理解`InputStream`。在Java中,`InputStream`是所有字节输入流的基类,用于读取一系列字节数据。在网络爬虫中,当...
InputStream的用法2 --- 马克-to-win java视频 输入流