真的不得不说网上的材料真的是太杂乱了...每次都害得我一直摸索摸索方案,但是一直找不到解决的办法
很气愤
ssh上传图片并预览显示
ACTION方法:
<span style="color:#333399;">package com.liulianggu.uploadfile;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.liulianggu.post.postAction;
public class FileUploadAction extends postAction {
// 上传文件标题
private String fileTitle;
// 上传文件域
private File upload;
// 上传文件类型
private String uploadFileType;
// 上传文件名
private String uploadFileName;
// 直接在sturts.xml文件中配置值的属性
private String savePath_images = "/imageFile";
// 接受struts.xml文件配置值的方法
public String getSavePath_images() {
return ServletActionContext.getServletContext().getRealPath(savePath_images);
}
public void setSavePath_images(String savePath_images) {
this.savePath_images = savePath_images;
}
public String getFileTitle() {
return fileTitle;
}
public void setFileTitle(String fileTitle) {
this.fileTitle = fileTitle;
}
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this.upload = upload;
}
public String getUploadFileType() {
return uploadFileType;
}
public void setUploadFileType(String uploadFileType) {
this.uploadFileType = uploadFileType;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
// 上传头像
public String upload_images() {
try {
String realpath = ServletActionContext.getServletContext().getRealPath("/imageFile");
System.out.println(realpath);
System.out.println(realpath);
System.out.println(uploadFileName);
File savefile = new File(new File(realpath), uploadFileName);
if (!savefile.getParentFile().exists()){
savefile.getParentFile().mkdirs();
}
FileUtils.copyFile(upload, savefile);
FileOutputStream fos = new FileOutputStream(getSavePath_images()
+ "\\" + getUploadFileName());
FileInputStream fis = new FileInputStream(getUpload());
byte[] buffer = new byte[1024];
int len = 0;
try {
while ((len = fis.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return SUCCESS;
}
}
</span>
JSP:接受上传文件的页面
<span style="color:#333399;"><body>
<div align="center">
<form action="FileUpLoad.action"
method="post" </span><span style="color:#ff0000;">enctype="multipart/form-data"</span><span style="color:#333399;">>
<label for="upload">上传头像:</label> <input type="file" name="upload">
<br> <br> <input type="submit" value="上传">
</form>
</div>
</body></span>
JSP:显示预览图片的页面
<body>
<div align="center">
<span style="white-space:pre"> </span><img src="imageFile/<s:property value="uploadFileName"/>"></img> </div>
qq:<img src="imageFile/QQ.png">
</body>
其实最最最重要的是你的文件目录
jsp是不能显示绝对路径下的图片的,只能使用相对路径。
其次,jsp页面可以直接使用和它同级目录下的图片,形式如下:
<img src="imageFile/QQ.png">
然后 你只需要将你上传的图片放在一个文件夹中,再修改目录就行了
关于目录问题
比如你的图片实际存放的位置是F:/tomcat/webapps/projectName/imageFile
那么你的图片src就直接写“imageFile/imageName”就可以了