我要在一个网页上传一张图片到服务器,然后保存图片的地址,在另一个页面显示图片
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我要在一个网页上传一张图片到服务器,然后保存图片的地址,在另一个页面显示图片相关的知识,希望对你有一定的参考价值。
我用的是struts,在页面上传图片后,Action里得到了这个图片文件File,然后我想将图片保存到服务器的一个文件夹里,并将地址保存在数据库里,这样需要在网页上显示的时候就直接写上地址就行了。
问题是:我写ServletActionContext.getServletContext().getRealPath()+文件名, 但是提示说不对,FileNotFoundException ,上面地址打印出来是:D:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\XXq ,
我是想让用户上传照片的,请问,这个图片最好是保存在什么地方,应该怎么写,网页上方便访问的。
回答的有用的话追加分数
我想问一下:这个 ServletActionContext.getServletContext().getRealPath("images"); 这个目录,正常情况下我要去电脑上去找的话,这个目录应该在哪呢
//接收文件 名称需要和表单name名称一致
private File image;
//上传多个图片文件
private File[] images;
//上传文件类型[image]为表单name名称,ContentType为固定写法
private String imageContentType;
private String[] imagesContentType;
//上传文件名称[image]为表单name名称,FileName为固定写法
private String imageFileName;
private String[] imagesFileName;
//上传一个文件
public String upload()
//将长传的文件存储到images文件夹下,首先根据images名称得到具体路径
String realPath = ServletActionContext.getServletContext().getRealPath("images");
File file = new File(new File(realPath),imageFileName);
//如果输入为空 没选择图片的话
if(image != null)
//判断文件夹存不存在
if(!file.getParentFile().exists())
file.getParentFile().mkdir(); //创建一个文件夹
try
FileUtils.copyFile(image, file);
super.addActionError("上传成功");
catch (IOException e)
super.addActionError("上传失败");
e.printStackTrace();
return SUCCESS;
//上传多个文件
public String manyUpload()
//将长传的文件存储到images文件夹下,首先根据images名称得到具体路径
String realPath = ServletActionContext.getServletContext().getRealPath("images");
System.out.println(realPath);
File file =null;
if(images != null)
try
for (int i = 0; i <images.length ; i++)
file = new File(new File(realPath),imagesFileName[i]);
FileUtils.copyFile(images[i], file);
super.addActionError("上传成功");
catch (IOException e)
super.addActionError("上传失败");
e.printStackTrace();
return SUCCESS;
public File getImage()
return image;
public void setImage(File image)
this.image = image;
public String getImageContentType()
return imageContentType;
public void setImageContentType(String imageContentType)
this.imageContentType = imageContentType;
public String getImageFileName()
return imageFileName;
public void setImageFileName(String imageFileName)
this.imageFileName = imageFileName;
public File[] getImages()
return images;
public void setImages(File[] images)
this.images = images;
public String[] getImagesContentType()
return imagesContentType;
public void setImagesContentType(String[] imagesContentType)
this.imagesContentType = imagesContentType;
public String[] getImagesFileName()
return imagesFileName;
public void setImagesFileName(String[] imagesFileName)
this.imagesFileName = imagesFileName;
参考技术A 首先你上传的文件应该跟你服务器的项目放在一起,至于那个文件夹,看你的需要了,否则在读取的时候如何来获得你的路径呢,其次在数据库中存的是一个地址,最好是针对于你的项目存的一个相对地址,这样你的项目发布的时候无论什么人访问都可以找到你的这个图片。还有一个就是读取图片的时候直接度数据库里的字段,页面上读取的也是相对地址,也就是这个字段信息就是你所需要的相对路径的地址 参考技术B images后面加个/就行啦!给分吧
以上是关于我要在一个网页上传一张图片到服务器,然后保存图片的地址,在另一个页面显示图片的主要内容,如果未能解决你的问题,请参考以下文章