p***p 发帖数: 559 | 1 网上个人资料网页,用户注册的时候可以上载照片.看个人
资料的时候能够显示照片.
请问
1 上载照片到某个目录会,如何将照片存入MYSQL数据库呢
2 如何将照片读出,然后显示在JSP网页上呢
多谢指导 | c*y 发帖数: 137 | 2 It's fairly standard, and covered by almost all JSP/Servlet books. Or you can
google it. Basically you uses a "file" element in the html form, and when user
submit the form, your servlet will open the inputstream of the httprequest and
read the data (handling the multi-part msg).
【在 p***p 的大作中提到】 : 网上个人资料网页,用户注册的时候可以上载照片.看个人 : 资料的时候能够显示照片. : 请问 : 1 上载照片到某个目录会,如何将照片存入MYSQL数据库呢 : 2 如何将照片读出,然后显示在JSP网页上呢 : 多谢指导
| p***p 发帖数: 559 | 3 但是没有将照片存入数据库,和从数据库读出
都是上载到SERVER的某个路径下
can
user
and
【在 c*y 的大作中提到】 : It's fairly standard, and covered by almost all JSP/Servlet books. Or you can : google it. Basically you uses a "file" element in the html form, and when user : submit the form, your servlet will open the inputstream of the httprequest and : read the data (handling the multi-part msg).
| c*****s 发帖数: 214 | 4 不知道你用什么工具处理上传文件,我一般用commons-fileupload。不管什么工具,最终
应该能拿到上传文件的InputStream。
数据库里保存文件的字段如果是LOB,它会通过OutputStream接收数据。这时只要用io包
里的Piped Stream接一下就可以存了。
如果是别的类型就更简单,把InputStream里的东西Dump出来,到内存到硬盘哪儿都可以
。永不着自己写程序,又很多工具可以帮你比如 commons-io。最后拿到文件内容的byte
array或大String,保存即可。注意把mime type,文件名等找几个字段保存起来以后用。
输出时一样,如果LOB会提供InputStream,用Piped
Stream把它连到HttpResponse里的OutputStream,别的类型直接写。注意Header里加入co
ntent type和文件名信息,你愿意的话。
【在 p***p 的大作中提到】 : 网上个人资料网页,用户注册的时候可以上载照片.看个人 : 资料的时候能够显示照片. : 请问 : 1 上载照片到某个目录会,如何将照片存入MYSQL数据库呢 : 2 如何将照片读出,然后显示在JSP网页上呢 : 多谢指导
| p***p 发帖数: 559 | 5 能给一顿LOB通过outputstream连接读写的例子么,
终
包
以
commons-io。最后拿到文件内容的byte
。
co
【在 c*****s 的大作中提到】 : 不知道你用什么工具处理上传文件,我一般用commons-fileupload。不管什么工具,最终 : 应该能拿到上传文件的InputStream。 : 数据库里保存文件的字段如果是LOB,它会通过OutputStream接收数据。这时只要用io包 : 里的Piped Stream接一下就可以存了。 : 如果是别的类型就更简单,把InputStream里的东西Dump出来,到内存到硬盘哪儿都可以 : 。永不着自己写程序,又很多工具可以帮你比如 commons-io。最后拿到文件内容的byte : array或大String,保存即可。注意把mime type,文件名等找几个字段保存起来以后用。 : 输出时一样,如果LOB会提供InputStream,用Piped : Stream把它连到HttpResponse里的OutputStream,别的类型直接写。注意Header里加入co : ntent type和文件名信息,你愿意的话。
| c*****s 发帖数: 214 | 6 完整的例子太长,程序大概是这样。
写(假设用commons-fileupload):
org.apache.commons.fileupload.FileItem fileItem = ...;
//我的程序很多是在jakarta
turbine框架里,拿到FileItem很容易。如果你也想用commons-fileupload请参考文档,
应该不难。
InputStream fileIn = fileItem.getInputStream();
...
Statement statement = dbcon.createStatement(...)//ResultSet类型不要READ_ONLY
ResultSet rs = statement.execute(...);
...
java.sql.Blob blob = rs.getBlob("file_content"); //假设字段是Blob类型
OutputStream blobOut = blob.setBinaryStream();
org.apache.commons.io.CopyUtils.copy(fileIn,
【在 p***p 的大作中提到】 : 能给一顿LOB通过outputstream连接读写的例子么, : : 终 : 包 : 以 : commons-io。最后拿到文件内容的byte : 。 : co
|
|