jsp图片上传以二进制流保存到数据库

Thinks_quiet 2009-12-31 08:30:35
jsp图片上传以二进制流保存到数据库,如果是本地上传是没有问题,要是跨网络上传就不行了
这是我现在的代码File file = new File("c:\\it.jpg");InputStream photoStream = new FileInputStream(file);
请问如何获得外网上传的图片的流啦,请教各位大哥了 急急。。。。。
...全文
1481 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Thinking_In_IT 2009-12-31
  • 打赏
  • 举报
回复
知道为什么 跨网络就不行吗?

请看你主机的代码:

File file = new File("c:\\it.jpg");

你在本地时,JAVA可以找到你的电脑的C盘的 it.jpg

如果换成别人的计算机了,当这台计算机访问你的WEB应用,JAVA就去找这台计算机的c:\\it.jpg, 结果没

有找到,所以保存到数据库失败。


解决办法:

c:\\it.jpg(本地上传至--->WEB部署的服务器的某个固定目录-->数据库

即:

使用表单上传的方式,在JSP 搞一个标签<input type="file">,先将你的图片上传到WEB应用部署的服务

器的某个固定目录上,再用“流”读WEB服务器固定目录里的这个图片,再送到数据库中保存即可。
licip 2009-12-31
  • 打赏
  • 举报
回复
http://download.csdn.net/source/1089134

这也可以下载来看一看。
JavaAlpha 2009-12-31
  • 打赏
  • 举报
回复
JavaAlpha 2009-12-31
  • 打赏
  • 举报
回复
得到 二进制数据 然后存到数据就可以了。
Thinks_quiet 2009-12-31
  • 打赏
  • 举报
回复
<%
// 新建一个SmartUpload对象
SmartUpload su = new SmartUpload();
// 上传初始化
su.initialize(pageContext);
su.upload();
// 将上传文件全部保存到指定目录
int count = su.save("/upload");
out.println(count + "个文件上传成功!<br>");

// 利用Request对象获取参数之值
out.println("TEST=" + su.getRequest().getParameter("TEST")
+ "<BR><BR>");

// 逐一提取上传文件信息,同时可保存文件。
for (int i = 0; i < su.getFiles().getCount(); i++) {
com.jspsmart.upload.File file = su.getFiles().getFile(i);
FileInputStream photoStream = new FileInputStream(file.getFilePathName());
System.out.println(photoStream);

// 若文件不存在则继续
if (file.isMissing())
continue;
// 显示当前文件信息
out.println("<TABLE BORDER=1>");
out.println("<TR><TD>表单项名(FieldName)</TD><TD>"
+ file.getFieldName() + "</TD></TR>");
out.println("<TR><TD>文件长度(Size)</TD><TD>" + file.getSize()
+ "</TD></TR>");
out.println("<TR><TD>文件名(FileName)</TD><TD>"
+ file.getFileName() + "</TD></TR>");
out.println("<TR><TD>文件扩展名(FileExt)</TD><TD>"
+ file.getFileExt() + "</TD></TR>");
out.println("<TR><TD>文件全名(FilePathName)</TD><TD>"
+ file.getFilePathName() + "</TD></TR>");
out.println("</TABLE><BR>");

// 将文件另存
// file.saveAs("/upload/" + myFile.getFileName());
// 另存到以WEB应用程序的根目录为文件根目录的目录下
// file.saveAs("/upload/" + myFile.getFileName(),
//su.SAVE_VIRTUAL);
// 另存到操作系统的根目录为文件根目录的目录下
// file.saveAs("c:\\temp\\" + myFile.getFileName(),
//su.SAVE_PHYSICAL);

}
%>
如何通过上面的代码转换成文件流呀,请各位帮忙看一下
lady54188 2009-12-31
  • 打赏
  • 举报
回复
byte[] data=new byte[imageTopic.getFileSize()];
data=imageTopic.getFileData();
//文件写入流
FileOutputStream fos=new FileOutputStream(url);
fos.write(data);
//关闭文件流
fos.close();
图片上传到服务器上
然后保存存URL既可
jarvis_java 2009-12-31
  • 打赏
  • 举报
回复
上传图片 在保存
lady54188 2009-12-31
  • 打赏
  • 举报
回复
QusetionForm qusetionForm = (QusetionForm)form;
FormFile imageTopic= qusetionForm.getImageTopic();
String name=imageTopic.getFileName();
String url=(servlet.getServletConfig().getServletContext().getRealPath("\\")+name).replace('\\','/');
URL图片路径
Thinks_quiet 2009-12-31
  • 打赏
  • 举报
回复
File file = new File(图片地址);
其中的图片地址,如果是本地的话是没问题,如果是远程怎么获得客户端的图片地址
Thinks_quiet 2009-12-31
  • 打赏
  • 举报
回复
我的服务器端是不需要保存图片呀,要在跨网络的时候获得客户端的图片,怎么获得网络流,以流的形式保存,在我的服务器上始终是没有图片的,只是将二进制流保存到数据库中就行,还望能不能清楚一点

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧