图片上传到服务器上后不能预览,所以也不能显示在页面上?

fanyuna 2009-05-20 05:44:25
我用FormFile做了一个批量上传图片,我把这些图片的名称用逗号隔开组城的字符串保存在数据库中,然后在前台显示的时候,如果一条新闻有多张图片的话,我让其显示的是第一张,我在控制台把第一张图片的名称和它上传到服务器上的路径都打印出来了,没有错误,但是图片就是不能显示 。那图片是gif格式的,我发现上传到服务器上的图片不能预览啊?我把控制台打印的路径放到ie地址栏中运行时,说找不到图片.
之后问网友,有的说是路径得转码,然后我就用
URLDecoder.decode(path,"utf-8");
把路径转码,我JSP页面里面的编码格式也是UTF-8。我上传的图片有的在服务器能预览,有的不能,因此在前台页面有的能显示,有的不能显示。我很郁闷啊。。。。
以下是我批量上传图片的核心代码:
String fname1="";
FormFile file=null;
InputStream streamIn = null;
OutputStream streamOut = null;
String myroot = request.getRealPath("files");
try {
File rootDir = new File(myroot);
if (!rootDir.isDirectory()) {
rootDir.mkdirs();
}

MultipartRequestHandler multipartRequestHandler =
newsInfoForm.getMultipartRequestHandler();

// 取得所有上传文件的对象集合
Hashtable elements = multipartRequestHandler.getFileElements();
// 循环遍历每一个文件
Collection values = elements.values();

for (java.util.Iterator i = values.iterator(); i.hasNext();) {

file = (org.apache.struts.upload.FormFile) i.next();// 取得上传的文件
String fname=file.getFileName();
System.out.println(fname);
fname1+=fname+",";
System.out.println(fname1);
String plocation = myroot + "\\" + fname;
streamIn = file.getInputStream();
streamOut = new FileOutputStream(plocation);
}

int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = streamIn.read(buffer, 0, 8192)) != -1)

{
streamOut.write(buffer, 0, bytesRead);
}
streamOut.close();
streamIn.close();
} catch (Exception e) {
System.err.println();
}


急急急,请各位大侠伸出援助之手!!!!
...全文
1146 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
LIJINLONGFENDOU 2009-07-01
  • 打赏
  • 举报
回复
受到法的
Defonds 2009-05-20
  • 打赏
  • 举报
回复
我的资源里有个java上传文件源代码,包含检查文件格式、限制文件大小等功能,楼主可以去看看

另还有份struts1.2上传文件源代码,也包含检查文件格式、限制文件大小等功能,有兴趣的朋友可以去看看

67,512

社区成员

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

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