admin 管理员组

文章数量: 887021

w3shool html上传文件,文件上传

文件上传

Spring MVC下的处理是类似的。

下面展示一个简单的实现。

项目结构与源码

web.xml

contextConfigLocation

/WEB-INF/applicationContext.xml

org.springframework.web.context.ContextLoaderListener

dispatcher

org.springframework.web.servlet.DispatcherServlet

2

1000000

2000000

4000000

dispatcher

/

30

redirect.jsp

注意其中的限制文件大小的配置:

1000000

2000000

4000000

applicationContext.xml

xmlns:xsi=""

xmlns:p=""

xmlns:aop=""

xmlns:tx=""

xsi:schemaLocation=" .0.xsd

.0.xsd

.0.xsd">

dispatcher-servlet.xml

xmlns:xsi=""

xmlns:p=""

xmlns:aop=""

xmlns:tx=""

xmlns:context=""

xmlns:mvc=""

xsi:schemaLocation=" .0.xsd

.0.xsd

.0.xsd

.0.xsd

.0.xsd">

class="org.springframework.web.multipart.support.StandardServletMultipartResolver">

indexController

class="org.springframework.web.servlet.view.InternalResourceViewResolver"

p:prefix="/WEB-INF/jsp/"

p:suffix=".jsp" />

class="org.springframework.web.servlet.mvc.ParameterizableViewController"

p:viewName="index" />

注意,这里增加了一个multipart解析器StandardServletMultipartResolver,用来处理上传的文件。/static是存放静态资源的目录,

我们也准备将上传的文件放到这个目录里。

UploadedFile.java

package me.letiantian.form;

import org.springframework.web.multipart.MultipartFile;

public class UploadedFile {

private String fileName;

private MultipartFile multipartFile;

public String getFileName() {

return fileName;

}

public void setFileName(String fileName) {

this.fileName = fileName;

}

public MultipartFile getMultipartFile() {

return multipartFile;

}

public void setMultipartFile(MultipartFile multipartFile) {

this.multipartFile = multipartFile;

}

}

HelloController.java

package me.letiantian.controller;

import java.io.File;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import me.letiantian.form.UploadedFile;

import org.springframework.web.bind.annotation.ModelAttribute;

import org.springframework.web.multipart.MultipartFile;

@Controller

@RequestMapping("/hello")

public class HelloController{

@RequestMapping(value = "")

public String index() {

return "hello/index";

}

@RequestMapping(value = "/upload")

public void output(@ModelAttribute UploadedFile uploadedFile,

HttpServletRequest request,

HttpServletResponse response) throws IOException {

response.setContentType("text/html;charset=UTF-8");

PrintWriter out = response.getWriter();

MultipartFile multiPartFile = uploadedFile.getMultipartFile();

System.out.println("文件原始名称:"+multiPartFile.getOriginalFilename());

System.out.println("表单给定的文件名称:"+uploadedFile.getFileName());

try{

System.out.println("上传目录:"+request.getServletContext().getRealPath("/static"));

File file = new File(request.getServletContext().getRealPath("/static"),

uploadedFile.getFileName());

multiPartFile.transferTo(file); // 将文件写入本地

out.println("

上传成功

");

} catch (Exception ex) {

System.out.println(""+ex.getMessage());

out.println("

上传失败

");

}

}

}

注意,表单数据被绑定到了uploadedFile对象中。

hello/index.jsp

JSP Page

指定文件名:

选择文件:

测试程序

选择文件,指定名称:

上传成功:

查看上传的文件:

Tomcat输出:

文件原始名称:01.png

表单给定的文件名称:1.png

上传目录:/data/Code/netbeans/Project_0109/build/web/static

资料

《Spring MVC学习指南》 第11章

本文标签: w3shool html上传文件 文件上传