1.用servlet来做 这个你要写的servlet是要extends httpservlet,在doGet 与doPost中处理。要用到文件上传解析器ServletFileUpload,解析结果返回的是一个List<FileItem>集合,后续的操作就是对fileItem这个类的方法的使用。详情可见这篇博客,写得相当详细,第一次做这个功能就是用servlet来做的那个时候刚接触springMVC,所以选择了servlet
2.上传时,表单要用enctype="multipart/form-data" method="post"来表示进行文件上传。下载就没有这么多限制。用get请求也可以,不过下载的时候有各种response头设置如:
response.setCharacterEncoding("utf-8");
response.setContentType("multipart/form-data");
response.setHeader("Content-Disposition","attachment;fileName="
+fileName);
Content-Type 的类型为要下载的类型时 , 这个信息头会告诉浏览器这个文件的名字和类型。
3.主要思想就用io流把文件给到本地(对应下载)和写到服务器(对应上传),对InPutStream 和outPutStream的使用,以及他的构造器的使用 如这段代码:InputStream inputStream =newFileInputStream(newFile(path,fileName)) 从这个路径中的此文件去建一个个字节输入流。
4.用springMVC来做就很简单了 有一个封装的类MultipartFile[] myfiles,这个类有点类似FileItem这个类 详细代码见个oschina博客 。
写此文的目的就是没有接触过下载,第一次接触,没想的那么难,而且在springMVC中更便捷(自带了multipartResolver解析器)