实现文件上传功能,并在页面上显示上传的图片

struts.xml:

<package name="advance" extends="struts-default"
  namespace="/day04">
  <interceptors>
   <interceptor name="some" class="interceptor.SomeInterceptor"/>
  </interceptors>
    <action name="uploadform" >
   <result name="success">/WEB-INF/jsp/day04/uploadform.jsp</result>
  </action>
  <action name="upload" class="day04.UploadAction">
   <interceptor-ref name="fileUpload">
    <param name="maximumSize">1024000</param>
   </interceptor-ref>
   <interceptor-ref name="basicStack" />
   <result name="success">
    /WEB-INF/jsp/day04/uploadimage.jsp
   </result>
  </action>
 </package>


uploadform.jsp

<%@page pageEncoding="utf-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<title></title>
	</head>
	<body>
		<h1>
			文件上传
		</h1>
		<s:form action="upload" method="post" theme="xhtml"
			enctype="multipart/form-data">
			<s:file label="File" name="some" />
			<s:submit value="提交" />
		</s:form>
		<br />
		<br />
		<br />
	</body>
</html>


uploadimage.jsp

<%@page pageEncoding="utf-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<title></title>
	</head>
	<body>
		<h1>
			文件上传成功
		</h1>
		<img src="../${imagePath}" />
		<br />
		<br />
		<br />
	</body>
</html>


UploadAction.java:

package day04;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import org.apache.commons.io.IOUtils;

import outman.BaseAction;


public class UploadAction extends BaseAction {
	private File some;
	private String someFileName;
	private String someContentType;
	private String imagePath;
	public String execute() throws Exception{
		System.out.println(some);
		System.out.println(some.length());
		System.out.println(someFileName);
		System.out.println(someContentType);
		String imageName = "file_" + System.currentTimeMillis()
		+ someFileName.substring(someFileName.lastIndexOf("."));
		System.out.println(imageName);
		imagePath = "upload_image/" + imageName;
		String realImagePath = toRealPath(imagePath);
		System.out.println(realImagePath);
		BufferedInputStream is = new BufferedInputStream(new FileInputStream(
				some));
		BufferedOutputStream os = new BufferedOutputStream(
				new FileOutputStream(realImagePath));
		IOUtils.copy(is, os);
		is.close();
		os.close();
		return "success";
	}
	public File getSome() {
		return some;
	}
	public void setSome(File some) {
		this.some = some;
	}
	public String getSomeFileName() {
		return someFileName;
	}
	public void setSomeFileName(String someFileName) {
		this.someFileName = someFileName;
	}
	public String getSomeContentType() {
		return someContentType;
	}
	public void setSomeContentType(String someContentType) {
		this.someContentType = someContentType;
	}
	public String getImagePath() {
		return imagePath;
	}
	public void setImagePath(String imagePath) {
		this.imagePath = imagePath;
	}
}

 

要在Spring MVC实现图片上传功能并在页面显示图片,可以按照以下步骤进行: 1. 配置文件上传组件。可以使用Commons FileUpload或Servlet 3.0+文件上传API。 2. 创建一个控制器方法来处理文件上传请求。该方法应该使用@RequestParam注释来获取上传的文件。 3. 在控制器方法,将上传的文件保存到服务器文件系统上的某个位置。 4. 在控制器方法,将文件的URL或路径存储到数据库。 5. 创建一个JSP页面显示存储在服务器上的图片。可以使用<img>标签来显示图片,其src属性应该是服务器上图片的URL或路径。 下面是一个示例控制器方法,用于处理文件上传请求并将文件路径存储到数据库: ```java @RequestMapping(value = "/uploadImage", method = RequestMethod.POST) public ModelAndView uploadImage(@RequestParam("file") MultipartFile file) { //保存文件到服务器文件系统上的某个位置 String filePath = "/path/to/save/file/" + file.getOriginalFilename(); try { file.transferTo(new File(filePath)); } catch (IOException e) { e.printStackTrace(); } //将文件路径存储到数据库 //... //返回视图 ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("imageDisplay"); modelAndView.addObject("imageUrl", filePath); return modelAndView; } ``` 然后,可以在JSP页面使用以下代码来显示图片: ```html <img src="${imageUrl}" alt="Uploaded Image"> ``` 其,${imageUrl}是控制器方法返回的文件路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值