1.附件的上传:
a.定义附件保存路径:
String fileURL = servlet.getServletContext().getRealPath(File.separator);
String filePath = "attachment" + File.separator + "file";
b.获取上传的附件:
FormFile file = fileForm.getPicFile();
c.上传附件:
upLoadFile(file, fileURL + filePath);
d.upLoadFile函数:
public boolean upLoadFile(FormFile formFile, String filepath)
throws FileNotFoundException, IOException {
// 得到文件的路径
String dirpath = filepath;
File dir = new File(dirpath);
// 判断文件夹是否存在
boolean dirflag = dir.exists();
if (!dirflag) {
// 不存在先创建,然后再创建子文件夹
dir.mkdirs();
// 可以创建子文件下的字文件夹
// dir.mkdirs();
}
// 显示相应文件夹下的所有文件
String[] list = dir.list();
// 此循环控制是否插入重复的资料
for (int i = 0; i < list.length; i++) {
if (formFile.getFileName().equals(list[i])) {
return false;
}
}
InputStream stream = formFile.getInputStream();
OutputStream bos = new FileOutputStream(dirpath + File.separator
+ formFile.getFileName());
int bytesRead = 0;
byte[] buffer = new byte[8192];
// 将文件写入服务器
while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) {
bos.write(buffer, 0, bytesRead);
}
bos.close();
stream.close();
return true;
}
2.附件的下载:
private static final String CONTENT_TYPE = "text/html; charset=GBK";
public static void getFile(HttpServletResponse response,
HttpServletRequest request, String _filepath) throws Exception {
response.setContentType(CONTENT_TYPE);
String filePath = _filepath;
File file = new File(filePath);
String filename = new String(file.getName().getBytes("iso-8859-1"),
"gbk");
response.setContentType("application/x-msdownload");
response.setContentLength((int) file.length());
response.setHeader("Content-Disposition", "attachment;filename="
+ new String(filename.getBytes("gbk"), "iso-8859-1"));
FileInputStream fis = new FileInputStream(file);
BufferedInputStream buff = new BufferedInputStream(fis);
byte[] b = new byte[1024];// 相当于我们的缓存
long k = 0;// 该值用于计算当前实际下载了多少字节
// 从response对象中得到输出流,准备下载
OutputStream myout = response.getOutputStream();
// 开始循环下载
while (k < file.length()) {
int j = buff.read(b, 0, 1024);
k += j;
// 将b中的数据写到客户端的内存
myout.write(b, 0, j);
}
// 将写入到客户端的内存的数据,刷新到磁盘
myout.flush();
//
}
}
分享到:
相关推荐
根据提供的文件信息,我们可以深入探讨有关“附件上传和下载”的技术细节,特别是涉及到前端与Java后端的交互过程。下面将详细介绍几个关键知识点: ### 一、MiniUI 附件上传 **MiniUI** 是一个轻量级的JavaScript...
Flex附件上传下载是一个在开发富互联网应用程序(RIA)时经常遇到的需求,特别是在处理用户交互和数据交换时。本文将深入探讨如何使用Flex结合WebService技术来实现在客户端与服务器之间的附件上传和下载功能。 ...
检测指定目录是否存在, 检测指定文件是否存在, 如果存在则返回true, 获取指定目录中所有文件列表,获取指定目录中所有子目录列表, 取指定目录及子目录中所有文件列表, 指定目录的绝对路径,检测指定目录是否为空, ...
综上所述,"附件上传下载demo.zip"是一个基于Struts1的Web应用实例,涵盖了文件上传和下载的基本流程,以及与之相关的前端JSP页面、后台Action处理和数据持久化的实现。通过分析和理解这些文件,开发者可以更好地...
C#实现附件上传和下载功能 C#实现附件上传和下载功能是指使用C#语言实现上传和下载附件的功能。下面将对该功能的实现进行详细介绍。 C#实现附件上传和下载功能的实现可以分为两个部分:上传附件和下载附件。 上传...
在C#编程中,多附件上传是一项常见的功能,特别是在Web应用程序和...初学者可以通过阅读和理解这些代码,学习如何在实际项目中实现多附件上传和下载功能。通过实践,可以更好地掌握C#和ASP.NET开发中的文件操作技巧。
在开发Web应用时,我们经常需要实现类似163邮箱的附件上传和下载功能。这个功能不仅涉及到用户界面的设计,还包括后端服务器处理文件、存储和传输等技术。以下是一些关键知识点的详细说明: 1. **前端上传组件**: ...
站长附件上传下载管理系统介绍 站长附件上传下载管理系统是一款PHP在线文件管理系统,全平台兼容性:Win(IIS Apache)、Linux(Apache) 支持中英文目录名及文件名。 初衷:让附件和主网站分离,支持上传,下载,分享...
直链附件上传下载系统v2.0 所有内容均在index.php可以直接编辑。 利用amazeui框架搭建,完美HTML5支持。 无需数据库支持,支持PHP即可。 与演示站一样。 (至于看访问打开及上传下载快不快就看你自己的空间和...
在NC65中,附件上传是为了支持用户分享和存储各种类型的文件,如文档、图片、音频或视频等。以下是上传附件的一般流程: 1. 打开NC65系统,进入需要上传附件的分组或具体任务页面。 2. 寻找并点击“上传附件”按钮...
在现代Web应用开发中,整合不同的技术...总的来说,Spring Boot、Vue.js和Element UI的组合为我们提供了强大的工具来处理文件上传、下载和在线预览。理解并熟练掌握这些技术,能够帮助开发者构建出功能完善的Web应用。
支持多文件上传、单个/批量附件下载,代码注释详细
本资源“layui多附件上传.rar”是基于layui实现的多文件上传功能的示例代码,它提供了完整的新增、修改和删除操作,并且经过了测试,确保了功能的稳定性。 1. layui基础知识: layui是一款遵循MIT协议的前端UI框架...
在Java编程领域,附件上传与下载是Web应用中常见的功能,尤其在企业级系统中,如电子邮件、在线文档协作平台等。本主题将深入探讨如何使用Java实现这一功能,涉及的技术点包括HTTP协议、Servlet、文件I/O以及可能...
钉钉附件上传下载的示例代码,分享给需要的朋友! 本示例是用corpsecret和corpid来获取access_token的,现在钉钉接口改成用appKey和appSecret来获取token了,不过方法大同小异,换一下调用接口的地址和参数就可以...
在IT领域,尤其是在Web开发中,多附件上传是一项常见的功能,允许用户一次上传多个文件,如图片、文档等。在给定的代码片段中,我们可以看到一个Java Web应用实现多附件上传的过程,主要涉及到Servlet、Apache ...
在Maximo中,附件上传功能是企业用户常用的一项特性,允许用户将相关的文档、图片或其他数据与资产、工单等对象关联,以便于信息共享和协作。本篇文章将详细介绍如何在Maximo 7.5系统中实现附件上传功能,并说明这一...
在IT行业中,附件上传是日常工作中非常常见的一个功能,它涉及到网络通信、文件处理和用户交互等多个技术领域。本文将详细解析附件上传的过程,包括附件的名称、大小、备注信息和上传人员信息,并讨论如何查看上传后...
内容概要:资源里是uniapp的代码文件压缩包,解压后可直接在Hbuilder上运行查看效果。里面的代码结构不复杂,主要是一个界面...使用场景及目标:使用uniapp开发,且有文件上传下载需求的开发场景可使用。 其他说明:无
在IT行业中,实现“上传下载附件功能”是许多应用程序的核心组成部分,尤其是在Web开发领域。C#作为Microsoft .NET框架的主要编程语言,提供了丰富的类库和API来帮助开发者轻松实现这样的功能。下面我们将深入探讨...