为了账号安全,请及时绑定邮箱和手机立即绑定

Java中的文件上传下载

难度初级
时长 3小时30分
学习人数
综合评分9.70
96人评价 查看评价
9.9 内容实用
9.7 简洁易懂
9.5 逻辑清晰
  • 下载
    查看全部
  • 上传
    查看全部
  • 下载的实现思路
    查看全部
    0 采集 收起 来源:实现文件下载

    2016-04-02

  • smartupload实现文件下载: 前台jsp页面: 下载:<a href="smartDownLoad?fileName=JAVAEE.docx">JAVAEE.docx</a> 在Servlet中: //首选获取表单中要下载文件的名称. String fileName=request.getParameter("fileName"); //不需要获取服务器提供下载文件的路径,直接创建SmartUpLoad对象,并初始化. SmartUpload su=new SmartUpload(); su.initialize(this.getServletConfig(), request,response); //如果下载的是图片,那么SmartUpload默认打开方式是在当前浏览器新建窗口中打开图片,不是以下载到本地文件的方式.因此设置为null即可以取消默认值. su.setContentDisposition(null); //下载的是文件,则不会存在这种问题. try { //使用SmartUpload的downloadFile("")方法进行下载,直接在该方法中的参数使用"/"开头代表服务器端的根目录. su.downloadFile("/file/"+fileName); } catch (SmartUploadException e) { e.printStackTrace(); } 然后就可以实现文件的下载功能了.
    查看全部
  • 用save()方法设置完文件上传的路径,此时上传文件就会保存在此路径中. 然后可以通过smartupload对象的getFiles().getCount();方法获取客户端上传文件的数量. getFiles()方法返回上传文件的File对象数组,此File对象是jspsmart中的File对象,非java IO中的File对象,以File数组的形式返回. getFile(index)方法则是在File对象数组中根据索引来获取单个File对象. 然后就可以对File对象,通过一系列的方法获取到上传文件的相应信息. getFieldName()方法可以获取上传文件中表单中的name属性值. getFileName()方法可以获取上传文件的文件名. getSize()方法可以获取上传文件的大小. getFileExt()方法可以获取上传文件的拓展名. getFilePathName()方法可以获取上传文件的全名. 这一系列的方法都是返回字符串类型,因此可以直接输出.
    查看全部
  • 因此可以根据异常信息的不同,相应返回不同的错误提示信息给客户端. 使用e.getMessage()方法获取异常信息,返回字符串类型,再使用indexOf()方法判断字符串中是否存在该异常信息的编号,如果存在则返回下标,如果不存在则返回-1. 根据异常信息的不同,对result变量进行不同赋值,保存该属性进request,最后在jsp页面获取该属性. try { //设置禁止上传的文件类型 su.setDeniedFilesList("rar,exe"); //最后要使用upload()方法上传文件. su.upload(); //使用save()方法设置文件上传的路径.该方法返回成功上传的文件个数. count=su.save(path); result="成功上传"+count+"个文件!"; } catch (Exception e) { result="上传失败"; if(e.getMessage().indexOf("1015")!=-1){ result="上传失败:上传文件类型不正确!"; } if(e.getMessage().indexOf("1010")!=-1){ result="上传失败:上传文件类型不正确!"; } if(e.getMessage().indexOf("1105")!=-1){ result="上传失败:上传文件的大小大于10Mb!"; } if(e.getMessage().indexOf("1110")!=-1){ result="上传失败:总共上传文件的总大小大于30Mb!"; } }
    查看全部
  • smartupload常见异常. (1015):上传的文件的类型是被禁止的,即符合setDeniedFileList()方法中参数规定的类型. (1010):上传的文件不符合setAllowedFileList("")方法参数中规定的文件类型.
    查看全部
  • smartupload中,设置了setAllowedFileList("");,那么就只能上传该参数中指定的文件类型的.此时可以不需要再设置setDeniedFileList()方法来限制上传文件的类型了. 这两个方法一般只用一个即可.
    查看全部
  • 上传原理
    查看全部
  • doPost方法中: String path=getServletContext().getRealPath("/")+"file"; //不需要获取表单中提交的文件名称,jspsmartupload会自动获取表单中提交上来的文件名,以该文件名保存在指定路径中. File file=new File(path); if(!file.exists()){ file.mkdirs(); }else{ //创建SmartUpload对象,该类是jspsmartupload包下的一个类. SmartUpload su=new SmartUpload(); //初始化该对象,通过该对象的initialize()方法,参数是ServletConfig对象,request对象,response对象. su.initialize(getServletConfig(), request,response); //设置上传文件的最大大小,1024字节等于1kb,1M等于1024kb,剩10即10M. su.setMaxFileSize(1024*1024*10); //设置所有上传文件中的最大大小. su.setTotalMaxFileSize(1024*1024*10*3); //限制上传文件的类型 su.setAllowedFilesList("txt,jsp,gif"); int count=0; String result=""; try{ //设置禁止上传的文件类型 su.setDeniedFilesList("rar,exe"); //最后要使用upload()方法上传文件. su.upload(); //使用save()方法设置文件上传的路径.该方法返回成功上传的文件个数 count=su.save(path); result="成功上传"+count+"个文件!" } catch (Exception e) { result="上传失败"; e.printStackTrace(); } request.setAttribute("result",result); request.getRequestDispatcher("jsp/view.jsp").forward(request, response); } }
    查看全部
  • //在Servlet中可以通过这两个方法分别获取ServletConfig对象与ServletContext对象 this.getServletConfig(); this.getServletContext();
    查看全部
  • 当一个程序遇到异常时,就不会再执行try{}语句块内的后续代码,会执行catch(){}内的代码,其他代码会正常执行. public class Test { public void test(){ try{ int i=1/0; System.out.println("你好1"); } catch(Exception e){ System.out.println("你好2"); } System.out.println("你好3"); } public static void main(String[] args) { Test t=new Test(); t.test(); } } 你好2 你好3
    查看全部
  • SmartUpload组件使用方法.
    查看全部
  • SmartUpload介绍
    查看全部
  • 在实际开发中,一般使用组件和框架来进行文件的上传与下载. 一般使用FileUpload/SmartUpload组件来完成文件的上传与下载. Struts2是使用FileUpload的形式进行文件的上传与下载操作.
    查看全部

举报

0/150
提交
取消
课程须知
本课程是 Java web 中级课程,建议各位小伙伴们先对 Jsp、Servlet、Jquery以及Struts2有初步认识,再来进修
老师告诉你能学到什么?
1、Java web 文件上传下载原理 2、纯 jsp+servlet 实现文件上传下载思路分析及实现 3、SmartUpload 轻松实现文件上传 4、Struts2 实现文件上传下载

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!