//*************************************************上传和下载文件begin
private static final String FILE_ENCODEING = "UTF-8";
private static final String CONTENT_TYPE = "application/octet-stream";
/**
* 上传文件
* @param obj
*/
public void upload(File upload,String fileName)throws Exception{
TbSysAttach immpSellAttach = new TbSysAttach();
byte[] attachContent = getBytesFromFile(upload);
immpSellAttach.setAttachContent(attachContent);
immpSellAttach.setStatusId("0"); //有效标记
immpSellAttach.setAttachName(fileName);
sysmngHibernate.saveObj(immpSellAttach);
}
/**
* 文件转化为字节数组
*
*
*/
public static byte[] getBytesFromFile(File f){
if (f == null) {
return null;
}
try{
long starttime = System.currentTimeMillis();
FileInputStream stream = new FileInputStream(f);
ByteArrayOutputStream out = new ByteArrayOutputStream(100000);
//ByteArrayInputStream ins = new ByteArrayInputStream(stream);
byte[] b = new byte[100000];
int n;
int i=0;
while ((n = stream.read(b)) != -1){
out.write(b, 0, n);
System.out.println(i++);
System.out.println(n);
}
System.out.println("------"+b.length);
// byte[] aimBarry = new byte[];
// ByteArrayInputStream ins = new ByteArrayInputStream(aimBarry);
stream.close();
out.close();
System.out.println("用时--》"+(System.currentTimeMillis() - starttime));
return out.toByteArray();
} catch (IOException e){
}
return null;
}
/**
* 下载文件
* @param attachId
* @param request
* @param response
* @throws Exception
*/
public void downFile(String attachId,HttpServletRequest request,HttpServletResponse response)throws Exception
{
String fileName = null;
byte[] fileContent = null;
TbSysAttach immpSellAttach = (TbSysAttach)sysmngHibernate.getSession().get(TbSysAttach.class, attachId);
if(null!=immpSellAttach){
fileName = immpSellAttach.getAttachName();
fileContent = immpSellAttach.getAttachContent();
}
BufferedOutputStream bos;
String downFileName = null;
bos = null;
if(fileContent == null || fileContent.length < 0 || response == null)
return;
try
{
response.setContentType(CONTENT_TYPE);
if(fileName == null || fileName.equals(""))
fileName = "anonymous";
downFileName = URLEncoder.encode(fileName, FILE_ENCODEING);
if(request.getHeader("User-Agent").indexOf("MSIE 5.5") != -1)
response.setHeader("Content-disposition", (new StringBuilder("filename=")).append(downFileName).toString());
else
response.setHeader("Content-disposition", (new StringBuilder("attachment; filename=")).append(downFileName).toString());
byte buff[] = fileContent;
bos = new BufferedOutputStream(response.getOutputStream());
bos.write(buff);
bos.flush();
}
catch(Exception ex)
{
}
finally
{
if(bos != null)
{
bos.close();
}
}
}
分享到:
相关推荐
在Java编程中,文件上传是一项常见的任务,尤其在开发Web应用程序...通过这个简单的Java文件上传例子,开发者可以学习如何在实际项目中实现文件上传功能,并理解相关的技术细节。这有助于提升Web应用的交互性和功能性。
在Spring MVC中,上传和下载功能是常见的需求,通常涉及到处理HTTP请求中的多部分数据以及生成响应的文件流。下面将详细介绍如何在Spring MVC中实现这些功能。 1. **配置Spring MVC** 首先,你需要在`web.xml`中...
在这个例子中,用户选择文件后,文件会被上传到服务器,并保存在"/uploads/"目录下。 ### 文件下载 文件下载通常涉及生成一个HTTP响应,其中包含要下载的文件内容。以下是如何在Flask中实现的一个例子: ```...
在这个"C# .NET FileUpload 多文件上传例子"中,我们将探讨两种主要的方法,帮助你理解和掌握这一关键功能。 首先,我们要知道ASP.NET中的`<asp:FileUpload>`控件是实现文件上传的核心组件。它可以允许用户从本地...
在IT行业中,多文件上传是一项常见的功能,尤其在文件管理、文档共享以及协作类应用中。这个"多文件上传例子及说明"的压缩包提供了一个示例,教你如何实现一次性上传一个文件夹内的所有文件。以下是对这个主题的详细...
在IT行业中,文件上传是网页应用中常见的功能之一,尤其在大数据时代,用户可能需要一次上传多个文件。"uploadify"是一款广泛使用的JavaScript插件,它使得多文件上传变得简单而高效。本示例代码是关于如何使用...
在这个"struts2+hibernate做的上传和下载文件例子"中,我们将深入探讨如何利用这些技术来实现文件的上传和下载功能。 1. **文件上传** - Struts2提供了内置的文件上传支持,通过`<s:file>`标签可以创建一个文件...
在这个项目中,开发者已经创建了一个包含数据库支持、开源实现的示例,不仅展示了文件上传和下载的实现,还演示了如何在程序中使用存储过程以提高效率和安全性。下面我们将详细探讨这些知识点。 1. **文件上传**: ...
本示例中的"fileUpload文件上传组件例子"提供了一个自定义实现的文件上传组件,旨在帮助开发者理解并掌握这一关键功能的实现方式。 首先,我们需要了解文件上传的基本原理。在HTML中,`<input type="file">`标签...
在Java开发中,文件上传和下载是常见的功能需求,Apache Commons FileUpload库为开发者提供了方便、灵活的文件上传处理机制。这个"commons-fileupload上传和下载例子.zip"压缩包包含了使用Apache Commons FileUpload...
在IT行业中,文件上传是一个常见的功能,特别是在Web应用中,用户可能需要上传各种类型的文件,如图片、文档或视频。本示例提供了“完整的上传文件的例子”,特别适用于那些正在学习或开发相关功能的开发者。这个...
在实际项目中,你可能会遇到更多复杂情况,比如文件重命名、断点续传、大文件分块上传下载等,但以上代码提供了一个基础的实现思路。在web4文件夹中,可能包含了实现这些功能的示例代码,你可以进一步研究以加深理解...
在这个例子中,我们使用了`FormData`对象来封装文件数据,并通过`RNFetchBlob.fetch`方法发送POST请求到你的服务器端上传接口。记得替换`'你的上传API地址'`为实际的API接口。 以上就是使用React Native和`react-...
【标题】"jsp文件上传到数据库里例子下载"是一个典型的Java Web开发教程,它涉及到的主要知识点是如何使用JSP(JavaServer Pages)将用户上传的文件存储到数据库中。这一过程通常用于实现用户在网站上上传图片、文档...
在Spring Boot项目中,文件上传、显示和下载是常见的需求,尤其在构建Web应用程序时。Spring Boot提供了一种简单而高效的方式来处理这些操作。这里我们将深入探讨如何在Spring Boot项目中实现文件上传、显示和下载,...
在VB(Visual Basic)编程中,上传本地文件到服务器是一个常见的任务,特别是在开发Web应用程序时。这个过程涉及客户端(用户计算机)与服务器之间的数据交互,通常通过HTTP协议完成。以下是对这一主题的详细阐述: ...
【NeatUpload 上传文件例子】是一个针对Visual Studio 2008的项目示例,主要展示了如何使用NeatUpload库来实现大文件上传的功能。NeatUpload是一个强大的ASP.NET控件,它允许用户在web应用程序中上传大文件,同时...
在Spring Boot应用中,文件上传和下载是常见的功能需求,特别是在构建Web应用程序时。这篇文章将指导你如何使用Spring Boot来实现这两个操作。 首先,我们需要创建一个Spring Boot项目。在创建新项目时,需要添加...
在这个例子中,`Init`方法接收两个参数:文件输入字段的ID和文件上传API的URL。`fileinput`方法配置了各种选项,包括显示预览、按钮样式和语言设置。 当用户选择文件并触发上传时,Bootstrap FileInput会使用AJAX...
在这个"MVC4实现文件上传的例子"中,我们将探讨如何在MVC4应用中实现文件上传功能,这对于任何处理用户上传内容的Web应用都是至关重要的。 首先,让我们了解文件上传的基本流程。在HTML表单中,我们可以使用`...