`
gongmingwind
  • 浏览: 592625 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

(转)传智播客学习文件上传

阅读更多
今天讲了文件的上传文件上传与下载工程。这在实际的应用中非常常见,首先上传文件需要解决一些问题主要包括一下几点:

1.上传文件怎么保证服务器的安全?
解决的方案:上传目录要禁止外界直接访问,一般的做法是把上传目录放到服务器的web-inf目录中,这个目录服务器是保护的,外界无法直接访问
2.上传文件被覆盖的问题
服务器要为每一个上传文件生成一个唯一的文件名,用UUID算法
3.上传的文件需要打散不同的文件夹存储,一个文件夹下面的文件不能超过1000个
使用Hash目录算法


4.上传文件名中文乱码问题:
   ServletFileUpload upload = new ServletFileUpload(factory);
   upload.setHeaderEncoding("UTF-8");


5.多文件上传问题。

下面是课上讲的上传与下载文件小项目的设计流程分为以下几步,严格遵循了程序设计的原则。

搭建开发环境:
   jstl.jar
   standard.jar
   commons-fileupload-1.2.1.jar
   commons-io-1.4.jar
   commons-dbutils-1.2.jar
   commons-dbcp-1.2.2.jar   dbcpconfig.properties
   commons-pool.jar
   mysql-connector-java-5.0.8-bin.jar
 
2.采用分帖技术搭建前台页面:
   首页:index.jsp---进行分帖,两个贴:top.jsp main.jsp
   top.jsp:
    <a href="/day16_web/upload.jsp" target="main">上传文件</a>
       <a href="/day16_web/servlet/ListFileServlet" target="main">下载文件</a>
     
3.设计实体:UpFile
private int id;
private String name; //文件名
private String realname; //文件真实名称
private String filepath; //文件的位置
private String username; //文件的上传用户
private String description; //文件的描述
private Date uptime;

4.创建库和表
create database day16;
use day16
create table upfile
(
   id int primary key auto_increment,
   name varchar(100) not null,
   realname varchar(100) not null,
   filepath varchar(100) not null,
   username varchar(100) not null,
   description longtext,
   uptime datetime
)

5.设计接口UpFileDao.java和实现类UpFileDaoImpl.java
写工具类JdbcUtil,以获得数据源

6.编写实现上传功能的UploadServlet
用上传组件解析数据,要把文件保存到硬盘中,并把文件的信息封装到UpFile对象,然后调用dao保存到数据中
要求:
文件不能被覆盖
文件要打散
上传的文件要禁止外界直接访问

7.编写ListFileServlet,它调用dao得到所有的上传文件信息,并交给listfile.jsp显示所有上传的文件
8.编写DownServlet,根据用户提交文件名,实现文件下载
分享到:
评论

相关推荐

    传智播客Strut2多文件上传

    总的来说,学习“传智播客Strut2多文件上传”教程,开发者需要掌握Struts2的Action机制、文件上传的原理以及如何在实际项目中处理文件。通过这个教程,你可以深入了解Struts2框架,并提高在实际开发中的应用能力。

    15年9月传智播客视频struts2

    根据提供的文件信息,我们可以推断出这是一套关于Struts2框架的教学视频资料,由知名的教育机构传智播客在2015年9月发布。下面将对Struts2框架进行详细介绍,并基于该视频资料可能涵盖的核心知识点进行展开。 ### ...

    node.js 传智播客 第2天 共8天

    在“Node.js 传智播客 第2天 共8天”的课程中,我们深入学习了Node.js的基础和核心概念,这些内容对于理解和构建基于Node.js的后端应用至关重要。以下是对每个视频讲座的主要知识点的详细说明: 1. **02 01 复习 - ...

    传智播客_Andorid_传智播客_8天Android视频教程_视频

    在“传智播客_8天Android视频教程”中,您将深入学习Android开发的基础知识,这是成为一名合格Android开发者的关键。Android是Google开发的开源操作系统,广泛应用于智能手机和平板电脑,拥有庞大的用户群体和市场...

    史上最好传智播客就业班.net培训教程60G 不下会后悔

    这是一个用WinForm技术实现的系统,传智播客在开课的半个月就安排一个项目,体现了传智播客“项目驱动学习”的先进教学理念。 4、网页开发与JavaScript(7天) 查看案例演示 核心技术课程 HTML基础加强、css(包含...

    传智播客俄罗斯方块游戏源码

    在【压缩包子文件的文件名称列表】中,“传智播客_俄罗斯方块游戏程序与API包”很可能是包含所有游戏源代码和可能的API文档的文件。这个包可能包含了以下组成部分: 1. **游戏主程序**:这是整个游戏的核心,通常...

    传智播客 fckeditor 笔记

    **传智播客FCKeditor笔记** FCKeditor是一款开源的网页文本编辑器,它允许用户在网页上编辑内容,...这份笔记是基于传智播客的课程整理而成,希望能对你的学习有所帮助,如果你觉得有价值,不妨分享给更多需要的人。

    传智播客struts2教程

    学习Struts2不仅需要理解这些基本概念,还要掌握Action的生命周期、拦截器链的工作原理、国际化处理、文件上传下载等功能。此外,整合Spring框架以实现依赖注入,以及与Hibernate等ORM框架集成进行数据库操作,也是...

    传智播客Qt5教程2016

    【传智播客Qt5教程2016】是一份专为学习Qt5开发的教程资源,由知名教育机构传智播客制作。Qt5是一个跨平台的应用程序开发框架,广泛应用于桌面、移动设备和嵌入式系统。本教程旨在帮助开发者深入理解和掌握Qt5的各个...

    传智播客韩顺平php教程的ppt

    【标题】"传智播客韩顺平PHP教程的PPT"是一套专注于PHP编程语言的教学资源,由知名IT教育专家韩顺平精心编撰。这个教程以PPT的形式呈现,旨在帮助初学者和有一定基础的学习者深入理解PHP语言的核心概念和实际应用。 ...

    传智播客OA系统全套源代码

    【传智播客OA系统全套源代码】是一个针对企业办公自动化(Office Automation)设计的完整解决方案,由知名教育机构传智播客开发并提供。这个系统涵盖了OA系统的各种核心功能,旨在提高企业的内部管理和协作效率。...

    传智播客JavaWeb 方立勋ppt

    本资料“传智播客JavaWeb 方立勋ppt”是针对JavaWeb开发的一份内部教学资源,由知名教育机构传智播客制作,适用于初学者和进阶者提升技能。 在JavaWeb开发中,Servlet扮演着核心角色,它是Java编写服务器端程序的...

    dreamweaver教程 传智播客

    传智播客提供的Dreamweaver教程旨在帮助学员快速掌握Dreamweaver的基本操作及高级技巧。 #### 二、Dreamweaver核心功能 1. **代码编辑器**:Dreamweaver拥有直观的代码编辑器,支持多种编程语言,如HTML5、CSS3、...

    JavaSE基础传智播客毕向东老师全程笔记PDF

    这份“JavaSE基础传智播客毕向东老师全程笔记PDF”是针对初学者和希望巩固Java基础知识的学习者而准备的宝贵资料。 笔记中可能涵盖了以下几个重要的JavaSE知识点: 1. **Java环境配置**:安装JDK(Java ...

    传智播客IM

    这可能涉及到文件上传、下载的实现,以及文件的存储和访问权限控制。 10. **音视频通话**:现代IM系统常常集成音视频通话功能,这需要利用到WebRTC等技术,实现高质量、低延迟的音视频传输。 综上所述,传智播客IM...

    传智播客Struts2学习资料

    3. **文件上传下载**:实现文件的上传和下载功能,涉及文件流的处理。 4. **Struts2与Ajax交互**:使用Struts2的JSON或者dojo插件实现异步请求。 5. **数据库操作**:结合Hibernate或MyBatis进行数据库操作,展示...

    JavaWeb 视频教程 传智播客 第16天 共28天

    在这个教程中,传智播客的专家们将引导我们深入理解JavaWeb开发的核心概念和技术。 首先,我们要讨论的是MySQL数据库的使用。MySQL是一种广泛采用的关系型数据库管理系统(RDBMS),因其开源、高效和易于管理的特性...

    传智播客安卓基础、谷歌电子市场、智慧北京、QQ 5.0、360 安全卫士

    【传智播客安卓基础】 传智播客的安卓基础课程是针对初学者设计的一套全面的教学资源,旨在帮助学员快速掌握Android开发的基本技能。这个部分通常涵盖以下几个核心知识点: 1. **环境配置**:如何安装并配置Android...

    传智播客PHP面试宝典2013版(上基础+下高级)

    3. 文件与目录操作:讲解如何读写文件、创建和删除目录,以及文件上传下载的实现方法。 4. 错误与异常处理:介绍错误报告机制,以及如何使用异常处理来增强代码的健壮性。 5. 面向对象编程:涵盖类与对象的概念、...

Global site tag (gtag.js) - Google Analytics