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

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

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

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

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,根据用户提交文件名,实现文件下载[/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值