`
gongmingwind
  • 浏览: 579514 次
  • 性别: 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,根据用户提交文件名,实现文件下载
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics