`
hlbng
  • 浏览: 177449 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

附件的上传和下载

阅读更多

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附件上传下载

    Flex附件上传下载是一个在开发富互联网应用程序(RIA)时经常遇到的需求,特别是在处理用户交互和数据交换时。本文将深入探讨如何使用Flex结合WebService技术来实现在客户端与服务器之间的附件上传和下载功能。 ...

    C# 上传下载附件方法

    检测指定目录是否存在, 检测指定文件是否存在, 如果存在则返回true, 获取指定目录中所有文件列表,获取指定目录中所有子目录列表, 取指定目录及子目录中所有文件列表, 指定目录的绝对路径,检测指定目录是否为空, ...

    附件上传下载demo.zip

    综上所述,"附件上传下载demo.zip"是一个基于Struts1的Web应用实例,涵盖了文件上传和下载的基本流程,以及与之相关的前端JSP页面、后台Action处理和数据持久化的实现。通过分析和理解这些文件,开发者可以更好地...

    C#实现附件上传和下载功能

    C#实现附件上传和下载功能 C#实现附件上传和下载功能是指使用C#语言实现上传和下载附件的功能。下面将对该功能的实现进行详细介绍。 C#实现附件上传和下载功能的实现可以分为两个部分:上传附件和下载附件。 上传...

    c#多附件上传源代码

    在C#编程中,多附件上传是一项常见的功能,特别是在Web应用程序和...初学者可以通过阅读和理解这些代码,学习如何在实际项目中实现多附件上传和下载功能。通过实践,可以更好地掌握C#和ASP.NET开发中的文件操作技巧。

    类似于163邮箱的附件上传

    在开发Web应用时,我们经常需要实现类似163邮箱的附件上传和下载功能。这个功能不仅涉及到用户界面的设计,还包括后端服务器处理文件、存储和传输等技术。以下是一些关键知识点的详细说明: 1. **前端上传组件**: ...

    站长附件上传下载管理系统 v1.0.rar

    站长附件上传下载管理系统介绍 站长附件上传下载管理系统是一款PHP在线文件管理系统,全平台兼容性:Win(IIS Apache)、Linux(Apache) 支持中英文目录名及文件名。 初衷:让附件和主网站分离,支持上传,下载,分享...

    直链附件上传下载系统 v2.0.rar

    直链附件上传下载系统v2.0 所有内容均在index.php可以直接编辑。 利用amazeui框架搭建,完美HTML5支持。 无需数据库支持,支持PHP即可。 与演示站一样。 (至于看访问打开及上传下载快不快就看你自己的空间和...

    NC65附件上传功能.rar

    在NC65中,附件上传是为了支持用户分享和存储各种类型的文件,如文档、图片、音频或视频等。以下是上传附件的一般流程: 1. 打开NC65系统,进入需要上传附件的分组或具体任务页面。 2. 寻找并点击“上传附件”按钮...

    spring+element+vue附件上传、下载及在线预览

    在现代Web应用开发中,整合不同的技术...总的来说,Spring Boot、Vue.js和Element UI的组合为我们提供了强大的工具来处理文件上传、下载和在线预览。理解并熟练掌握这些技术,能够帮助开发者构建出功能完善的Web应用。

    java多附件上传、批量下载

    支持多文件上传、单个/批量附件下载,代码注释详细

    layui多附件上传.rar

    本资源“layui多附件上传.rar”是基于layui实现的多文件上传功能的示例代码,它提供了完整的新增、修改和删除操作,并且经过了测试,确保了功能的稳定性。 1. layui基础知识: layui是一款遵循MIT协议的前端UI框架...

    java附件上传与下载

    在Java编程领域,附件上传与下载是Web应用中常见的功能,尤其在企业级系统中,如电子邮件、在线文档协作平台等。本主题将深入探讨如何使用Java实现这一功能,涉及的技术点包括HTTP协议、Servlet、文件I/O以及可能...

    钉钉附件上传下载示例源码

    钉钉附件上传下载的示例代码,分享给需要的朋友! 本示例是用corpsecret和corpid来获取access_token的,现在钉钉接口改成用appKey和appSecret来获取token了,不过方法大同小异,换一下调用接口的地址和参数就可以...

    多附件上传与下载

    在IT领域,尤其是在Web开发中,多附件上传是一项常见的功能,允许用户一次上传多个文件,如图片、文档等。在给定的代码片段中,我们可以看到一个Java Web应用实现多附件上传的过程,主要涉及到Servlet、Apache ...

    maximo系统附件上传功能的实现

    在Maximo中,附件上传功能是企业用户常用的一项特性,允许用户将相关的文档、图片或其他数据与资产、工单等对象关联,以便于信息共享和协作。本篇文章将详细介绍如何在Maximo 7.5系统中实现附件上传功能,并说明这一...

    附件上传,包括附件名称,大小,以及附件备注和上传人员信息

    在IT行业中,附件上传是日常工作中非常常见的一个功能,它涉及到网络通信、文件处理和用户交互等多个技术领域。本文将详细解析附件上传的过程,包括附件的名称、大小、备注信息和上传人员信息,并讨论如何查看上传后...

    uniapp实现附件选择上传下载示例代码(H5,app,小程序可用)

    内容概要:资源里是uniapp的代码文件压缩包,解压后可直接在Hbuilder上运行查看效果。里面的代码结构不复杂,主要是一个界面...使用场景及目标:使用uniapp开发,且有文件上传下载需求的开发场景可使用。 其他说明:无

    上传下载附件功能

    在IT行业中,实现“上传下载附件功能”是许多应用程序的核心组成部分,尤其是在Web开发领域。C#作为Microsoft .NET框架的主要编程语言,提供了丰富的类库和API来帮助开发者轻松实现这样的功能。下面我们将深入探讨...

Global site tag (gtag.js) - Google Analytics