相信大家都文件上传比不陌生,也有许多不同的处理方法。文件上传不仅要在前端页面进行格式校验,在后端服务也要进行各种可能性的校验。就拿图片来说吧,首先在前端要判断是否是图片格式,而服务还要判断文件是否存在,图片大小的限制,生成图片的缩略图等等。如果这些功能全部都有自己来写那该多累啊,效率也不高。
对于java文件上传也有许多的第三方包,其中commons-fileupload和commons-io的包很好用,也给我带来了很多方便。下面就以一小段代码来讲讲它的使用方法:
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
if (!ServletFileUpload.isMultipartContent(req)) {
// TODO 该表单不符合文件上传规则,对前端页面返回错误信息。
//......
return;
}
//MyServlet是本方法类的servlet
//通过本类获取相对的URL,同时得到保存缓存的文件路径
//你也可以通过自己指定的路径,而不必非得这么做
URL url = MyServlet.class.getResource("");
File file = new File(url.getFile() + "tmp");
if (!file.isDirectory())
file.mkdir();
// 该提示符合文件上传规则,在此处对文件上传数据进行处理。
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设定使用内存超过512KB时,将产生临时文件并存储于临时目录中。
factory.setSizeThreshold(512 * 1024);
// 设定存储临时文件的目录。
factory.setRepository(file);
ServletFileUpload fileUpload = new ServletFileUpload(factory);
// 设定默认或最大允许上传5MB的文件。
fileUpload.setSizeMax(5 * 1024 * 1024);
try {
List<FileItem> fileItems = fileUpload.parseRequest(req);
for (FileItem fileItem : fileItems) {
if (!fileItem.isFormField()) {
byte[] bs = fileItem.get();
//TODO 这里已经获取到上传的文件字节,进行对数据的保存等等
//...
break;
}
}
} catch (Exception e) {
//TODO 返回错误信息给页面
}
}
以上代码已经比较好的说明是文件上传的使用,在这里所使用的是commons-fileupload-1.2.1.jar和commons-io-1.4.jar。
分享到:
相关推荐
layui 上传文件上传技巧 在layui框架中,上传文件是非常常见的需求,但是在上传文件的过程中,我们可能会遇到一些问题,例如上传按钮点击后不执行choose事件,这篇文章将会讲解如何解决这个问题,并提供一个简单的...
综上所述,结合`SpringMVC`和`Ajax`的文件上传解决方案能提供流畅的用户体验,同时短视频背景和`a`标签绑定文件域的技巧进一步提升了界面的交互性。在实际开发中,还需要考虑安全性、错误处理以及性能优化等问题,...
在Web应用中,我们通常使用Servlet来处理文件上传请求。Servlet通过`HttpServletRequest`对象的`getParts()`方法获取上传的文件。首先,确保`<form>`标签设置`enctype="multipart/form-data"`,以便支持文件上传。 ...
- 异步上传:使用Ajax或WebAPI进行异步文件上传,改善用户体验,不会阻塞浏览器。 - 分块上传:对于大文件,可以考虑分块上传,减少内存占用和提高上传效率。 总结来说,ASP.NET的文件上传功能通过结合C#编程和...
本教程将基于标题“大文件上传,ajax实现,支持10G以上的上传”和描述,详细介绍如何使用AJAX实现大文件上传,并探讨其背后的原理和技巧。 首先,理解大文件上传的关键在于分块上传。当文件过大时,一次性上传整个...
使用JavaScript实现文件上传到本地服务器并获取到上传后文件所在路径,是由到JavaScript,java以及html页面。这个比较好,不是在jsp上获取路径,jsp太简单了,而且过时了,所以就在html页面实现了下功能,我主要是做...
在实际应用中,可以根据项目需求和设计风格灵活组合这些技巧,打造出独特的文件上传表单域。同时,需要注意兼容性问题,确保在不同浏览器和设备上都能正常工作。在实现这些特效时,可以参考压缩包中的示例代码,它们...
在Node.js环境中,Express框架是构建web应用的首选工具,其强大的功能和简洁的API使得开发者能够快速地创建各种类型...通过学习和实践这个小demo,开发者可以更好地理解和掌握在Node.js和Express中处理文件上传的技巧。
在本节中,我们将深入探讨如何优化大文件上传以及处理多个文件上传的经验技巧。 首先,针对大文件上传,传统的HTTP表单提交方式可能会受到服务器设置的限制,如PHP的`post_max_size`和`upload_max_filesize`配置。...
在本文中,我们将深入探讨如何使用Bootstrap来定制文件上传和下载的样式,以提供更美观、用户体验更好的交互界面。 首先,文件上传是网站和应用程序中常见的功能,允许用户上传本地文件到服务器。在HTML5中,`...
通过学习这个Java Web文件上传与下载的例子,你可以掌握处理文件的基本技巧,这对于开发Web应用来说是至关重要的。同时,记住不断更新知识,了解最新的技术趋势,如Spring Boot中的文件操作API,以及现代前端框架如...
`example_http_client.c`和`example_http_client.h`可能是示例代码,展示了如何使用上述库进行实际的文件上传操作。 在RTOS(实时操作系统)环境下,将文件上传作为一个单独的任务是非常常见的做法。任务可以周期性...
在IT行业中,多文件上传是一项常见的功能,尤其在文件管理、文档共享以及协作类应用中。这个"多文件上传例子及说明"的压缩包提供了一个示例,教你如何实现一次性上传一个文件夹内的所有文件。以下是对这个主题的详细...
尽管ExtJS 2.2不直接支持多文件上传,但通过一些技巧和工作,我们依然可以构建出功能完善的多文件上传功能。在实际开发中,如果条件允许,建议升级到更高版本的ExtJS,以利用更多内置功能和优化。
特别是在使用PHP进行后端开发时,掌握高效的文件上传处理技巧对于提升用户体验、优化服务器资源利用至关重要。本文将针对不同的业务场景,介绍几种实用的PHP文件上传后端处理技巧。 #### 二、业务场景分析与技巧...
本文将详细介绍如何使用Visual Basic (VB) 实现文件上传功能,并通过两种不同的方法进行讲解:一是使用FTP命令,二是利用INET控件。这两种方法各有优缺点,根据实际需求选择合适的方式可以提高程序的效率和用户体验...
在PHP开发中,文件上传是一项常见的功能,尤其在构建用户交互性强的Web应用时更为重要。本实例将探讨如何在PHP环境中实现...通过学习和实践这两个文件,我们可以更有效地在自己的项目中实现安全、可靠的文件上传功能。