`
lz726
  • 浏览: 335263 次
  • 性别: Icon_minigender_2
  • 来自: 福建,福州
社区版块
存档分类
最新评论

文件(或者说附件)上传下载(单个)

阅读更多
单个上传,普通的form,普通的file:下面的是用来实现多个的,但是为了实现单个就只循环一次,不知道还有没别的办法~
  1.     String uploadPath = "c:/";   
  2.     if(ServletFileUpload.isMultipartContent(request))   
  3.     {   
  4.         System.out.println("编码方式为:"+request.getCharacterEncoding());   
  5.         DiskFileItemFactory factory = new DiskFileItemFactory();   
  6.         factory.setRepository(new File(uploadPath));   
  7.         ServletFileUpload sfu = new ServletFileUpload(factory);   
  8.         sfu.setSizeMax(ConfigBean.getIntValue("permitFileSize"));   
  9.         List list=null;   
  10.         try {   
  11.             list = sfu.parseRequest(request);   
  12.         } catch (FileUploadException e1) {   
  13.                
  14.             e1.printStackTrace();   
  15.         }   
  16.         Iterator it = list.iterator();   
  17.         int num = 0;   
  18.         while(it.hasNext())   
  19.         {   
  20.             FileItem fi = (FileItem) it.next();   
  21.                
  22.             if(fi.isFormField())   
  23.             {   
  24.                 System.out.println(fi.getFieldName());    
  25.             }   
  26.             else  
  27.             {   
  28.                 String fileName = fi.getName();   
  29.                 fileName = fileName.substring(fileName.lastIndexOf("\\")+1);  
  30.                 byte[] b = fi.get();  
  31.                 String webPath  =uploadPath+"\\"+fileName;  
  32.                 request.setAttribute("webPath",webPath);   
  33.                 BufferedOutputStream bos;   
  34.                 try {   
  35.                     bos = new BufferedOutputStream(new FileOutputStream(webPath));   
  36.                     bos.write(b);   
  37.                     bos.close();   
  38.                 } catch (FileNotFoundException e) {   
  39.                        
  40.                     e.printStackTrace();   
  41.                 } catch (IOException e) {   
  42.                        
  43.                     e.printStackTrace();   
  44.                 }   
  45.                 break;   
  46.             }   
  47.                
  48.                
  49.         }   
  50.            
  51.            
  52.     }  

 

下载的:

代码是在这里找到的.呵呵~
  1. OutputStream out;   
  2.         try {   
  3.             out = response.getOutputStream();   
  4.             String filename = request.getParameter("filename");       
  5.             String filepath = "c:/"+filename;    
  6.             response.setContentType("application/octet-stream");     
  7.             response.setHeader("Content-Disposition","attachment;filename = "+filename);       
  8.             java.io.FileInputStream fileInputStream = new java.io.FileInputStream(filepath);      
  9.             int c;   
  10.             byte[] buff = new byte[1000];   
  11.             while ((c = fileInputStream.read(buff, 01000)) > 0) {   
  12.                 out.write(buff, 0, c);   
  13.                 out.flush();   
  14.             }   
  15.             out.flush();   
  16.             out.close();   
  17.             fileInputStream.close();    
  18.                
  19.         } catch (IOException e) {   
  20.                
  21.                
  22.             e.printStackTrace();   
  23.         }   
  24.           

 

界面上用一个连接:

xml 代码
  1. <a  href='<%=webPath%>/chat/file.shtml?method=downLoad&filename='<!---->  title='点击接收' >文件名a>  
分享到:
评论

相关推荐

    disucz 附件下载次数限制

    例如,提供的"价值60元"附件下载次数限制1.0可能是这样一个插件,它可能包含额外的功能,如设置单个附件的独立下载限制,或者设定在达到一定次数后显示特定提示信息。 3. **监控与管理**:安装并启用插件后,管理员...

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

    总的来说,附件上传是一个涉及前端交互、后端处理、文件存储和权限控制等多个层面的功能。理解并实现这一过程需要扎实的Web开发基础,同时也需要考虑到用户体验和安全性。通过合理的架构设计和优化,我们可以构建出...

    多文件上传和展示

    5. **处理上传**:你可以监听`filebatchselected`事件来在用户选择文件后执行某些操作,或者监听`fileuploaded`事件来处理单个文件上传完成后的回调。 6. **文件预览**:当用户选择文件后,Bootstrap-fileinput会...

    SWFUpload多附件上传控件DEMO

    总结来说,SWFUpload是一个功能齐全、用户体验良好的多附件上传控件,具有多文件选择、进度条显示和高度自定义的特点。它不仅简化了用户上传文件的过程,同时也为开发者提供了丰富的配置选项和易于扩展的架构,是...

    mantis上传附件大小问题

    在使用Mantis的过程中,开发者或测试人员常常需要上传各种类型的文件作为bug报告的附件,比如截图、日志文件或其他相关文档等。这些附件能够帮助团队更好地理解问题所在,并加快问题解决的速度。然而,由于服务器...

    discuz6多附件上传插件

    6 的附件上传功能相对有限,只支持单个文件上传。为了满足用户在论坛上分享多个文件的需求,开发者们开发了多附件上传插件,极大地提升了论坛的互动性和用户体验。本文将详细介绍 Discuz! 6 多附件上传插件的功能、...

    大附件上传

    在IT行业中,大附件上传是一项重要的功能,尤其在电子...总的来说,大附件上传是一项复杂的技术实现,涉及到文件处理、网络传输、后台管理等多个环节。通过合理的设计和优化,可以为用户提供高效、可靠的文件交互体验。

    一次选择多个文件进行批量上传

    jQuery File Upload组件允许用户通过拖放或者多选文件对话框选择多个文件,并使用Ajax技术异步上传,这样就不会打断用户的其他操作。 要理解这个组件的工作原理,我们需要了解几个关键概念: 1. **HTML5 File API*...

    多附件大容量上传组件

    至于【压缩包子文件的文件名称列表】"Finstone.Web.Upload",这可能是一个包含组件源代码、库文件、配置文件或者示例项目的文件夹。Finstone可能是组件的开发公司或项目名,而".Web.Upload"则可能代表这是专为Web...

    方配模板引擎文件上传实例源码

    在本实例源码中,主要涉及的是文件上传功能,这在Web开发中是一项常见的需求,如用户上传头像、提交附件等。下面我们将详细探讨文件上传的相关知识点以及如何在方配模板引擎中实现这一功能。 1. 文件上传的基本原理...

    java Swing 文件批量上传 DEMO 源代码

    总的来说,这个Java Swing 文件批量上传DEMO涵盖了Java GUI编程、文件I/O、网络编程、多线程以及用户交互等多个方面,对于初学者来说,是一个很好的实践项目,可以帮助他们深入理解Java Swing的应用及文件上传的实现...

    解决Outlook2010最大附件上传限制

    标题所指的“解决Outlook2010最大附件上传限制”主要涉及如何调整Outlook的设置以允许发送更大的邮件附件。 首先,我们需要了解Outlook 2010的默认附件大小限制。在标准配置下,Outlook通常限制单个附件的大小在20...

    简单的仿163多附件添加功能

    对于“仿163”部分,163邮箱的附件上传界面通常包括预览功能,用户可以在上传前查看图片或其他类型的文件。可以使用FileReader API来实现预览: ```javascript function previewFile(file) { var reader = new ...

    Silverlight多文件(大文件)上传项目源码

    Silverlight多文件(大文件)上传项目源码 一个免费的SL多文件上传,支持大文件上传 Features(特色): - Select multiple files to upload (选择多文件上传) - Upload multiple files at the same time ...

    webservice接口一个或多个附件上传

    综上所述,实现“webservice接口一个或多个附件上传”涉及了接口设计、文件处理、错误处理、安全性、性能优化等多个方面。通过合理的规划和实现,可以构建出稳定、高效、安全的文件上传服务。在FlowChangeWebService...

    asp.net多文件批量上传源码

    批量上传可以极大提高用户在上传大量文件时的效率,避免了单个文件逐一上传的繁琐操作。 首先,我们要理解ASP.NET中的文件上传机制。在ASP.NET中,文件上传主要依赖于`HttpPostedFileBase`接口,它包含了处理上传...

    react-ReactFineUploader一个灵活和强大的文件上传react小部件

    首先,React Fine Uploader支持多种上传模式,包括传统的多文件选择、单个文件选择,甚至拖放上传。这使得用户可以在不离开页面的情况下方便地添加或移除文件,提高了用户体验。拖放功能尤其适用于大文件上传,让...

    如何使用QQ邮箱里的超大附件.docx

    如果你需要删除某个文件或者延长它的保存期限,都可以在这个界面进行操作。值得注意的是,超大附件并非永久保存在中转站,它们有一定的保存期限,接收者必须在这段时间内下载附件,过期后,文件将会被自动删除。 ...

    文件分割分割文件小程序

    这种操作通常用于优化存储空间,方便在网络上传输大文件,或者在只允许上传单个较小文件的系统中分批上传大文件。例如,如果你有一个2GB的电影文件,想要通过邮件发送,但邮件系统限制了附件大小,此时就可以用文件...

    Knife_for_Filebin文件切割器.rar

    例如,在文件分享时,可以通过切割大文件,使其符合邮件附件大小限制,或者方便上传到支持小文件的云存储服务。在备份场景下,如果目标存储设备空间有限,切割大文件可以更好地利用空间。在恢复文件时,只要按照正确...

Global site tag (gtag.js) - Google Analytics