图片上传到服务器上后不能预览,所以也不能显示在页面上?
我用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();
}
急急急,请各位大侠伸出援助之手!!!!