在没有使用框架的情况下,我们可以借助jspSmartUpload之类的插件来进行上传和下载操作,下面就以jspSmartUpload为例,来讲一下怎么使用它来进行上传与下载操作。
第一步,下载jspSamrtUpload.jar,并添加到构建路径。值得注意的是某些jspSmartUpload.jar包对中文的支持不够,网上有一些经过改编的jspSmartupload.jar包,可以较好地支持中文。
先说上传。按照惯例,先上代码。
SmartUpload su = new SmartUpload();
su.initialize(getServletConfig(), request, response);
try {
su.upload();
su.setAllowedFilesList("doc"); //设置允许上传的文件格式
File file = su.getFiles().getFile(0); //获取上传的文件
//信息持久化操作
//将文件保存至服务器
file.saveAs("uploadFile/"+fileName);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SmartUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
在执行代码之前,需要在WebRoot下新建一个文件夹,比如这里我新建了一个名为uploadFile的文件夹,但是上传之后文件并不能在ecclipse 的工程文件夹下看到,正确的打开方式是,如下图所示,点击Browser deploymentlocation,然后弹出一个文件夹,在选择你新建的文件夹即可,比如这里就是uploadFile文件夹。
再说下载,先上代码:
request.setCharacterEncoding("utf-8");
String fileName = request.getParameter("fileName");
SmartUpload su =new SmartUpload();
su.initialize(getServletConfig(), request, response);
su.setContentDisposition(null);
try {
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String filePath = request.getRealPath("/uploadFile")+"/"+fileName;
su.downloadFile(filePath);
} catch (SmartUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
在下载部分,我们就不要事先创建一个文件夹了,在点击下载按钮后将会提示将文件保存至哪个文件夹。在这里我们将文件保存至服务器,并将文件的文件名保存至数据库,在下载的时候从数据库中获取文件名称后下载。