这期内容当中小编将会给大家带来有关javaweb中怎么实现文件上传,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。引入依赖当然在引入依赖之前我们需要先创建一个被Maven管理的WEB Project,创建方
这期内容当中小编将会给大家带来有关javaweb中怎么实现文件上传,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
当然在引入依赖之前我们需要先创建一个被Maven管理的WEB Project,创建方式我就不多说了,小伙伴们如果不熟悉可以参考这篇文章springMVC基础配置(通过注解配置,非xml配置)。创建成功之后在springmvc框架的基础之上再添加如下两个依赖就行了:
<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.5</version> </dependency>
两个依赖库,一个用来解决文件上传,一个简化IO操作。
这个是一个简单的jsp页面,我在resources文件夹中创建views文件夹,在views文件夹中创建index.jsp文件,如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>文件上传</title></head><body><fORM action="upload" enctype="multipart/form-data" method="post"> <input type="file" name="file" /> <input type="submit" value="上传" /></form></body></html>
这个页面很简单,没啥好说的,注意action是upload就行了。
这一步算是比较关键的一步,但是这里只有一个新Bean,我们先来看看类:
@Configuration@EnableWebMvc@ComponentScan("org.sang")public class MVCConfig extends WebMvcConfigurerAdapter{ @Bean public InternalResourceViewResolver viewResolver() { InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); viewResolver.setPrefix("/WEB-INF/classes/views/"); viewResolver.setSuffix(".jsp"); viewResolver.setViewClass(JstlView.class); return viewResolver; } @Override public void addViewControllers(ViewControllerReGIStry registry) { registry.addViewController("/index").setViewName("/index"); } @Bean public MultipartResolver multipartResolver() { CommonsMultipartResolver resolver = new CommonsMultipartResolver(); resolver.setMaxUploadSize(1000000); return resolver; }}
这个类在前面几篇博客中已经反复说过好几次了,这里只是多了一个multipartResolver方法,该方法用来提供一个MultipartResolver的Bean,该方法中主要根据业务需求对CommonsMultipartResolver进行配置,我这里以限制上传文件大小为例。
这个也是老生常谈,前面几篇博客也说了n多次了,不赘述:
public class WebInit implements WebApplicationInitializer { public void onStartup(ServletContext servletContext) throws ServletException { AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); context.register(MVCConfig.class); context.setServletContext(servletContext); ServletRegistration.Dynamic servlet = servletContext.addServlet("dispatcher", new DispatcherServlet(context)); servlet.addMapping("/"); servlet.setLoadOnStartup(1); }}
@Controllerpublic class UploadController { @ResponseBody @RequestMapping(value = "/upload",method = RequestMethod.POST,produces = "text/plain;charset=UTF-8") public String upload(MultipartFile file) { try { FileUtils.writeByteArrayToFile(new File("/home/sang/workspace/"+file.getOriginalFilename()),file.getBytes()); return "上传成功"; } catch (IOException e) { e.printStackTrace(); return "上传失败"; } }}
这里通过Common-IO 中提供的相关方法,直接将上传文件的byte数组写成文件就行。
这个时候运行项目,在浏览器中打开index.jsp,如下:
上述就是小编为大家分享的JavaWeb中怎么实现文件上传了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网精选频道。
--结束END--
本文标题: JavaWeb中怎么实现文件上传
本文链接: https://lsjlt.com/news/296057.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0