- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
WEB应用中上传及下载文件的程序
作者:薛军
最小部门:BSS二部
所属产品:TopEng BOSS
来源:维护
关键词: WEB应用程序,上传,下载
1、现象、问题描述
在开发WEB应用程序中经常会遇到上传文件或下载文件的情况,现在就举一个在WEB应用程序中实现文件上传和下载的例子供大家参考学习。
2、关键过程、根本原因分析
我们在开发中使用Struts框架、JSP、JAVA,HTML,JS开发WEB应用程序。
文件上传:
经查找相关技术文档,要成功上传文件,在WEB页面中需满足以下条件:
·INPUT TYPE=FILE 元素必须出现在FORM元素内
·必须为 INPUT TYPE=FILE 元素指定 NAME 标签属性的值
·FORM 元素 METHOD 标签属性的值必须设置为 POST
·FORM 元素 ENCTYPE 标签属性的值必须设置为 multipart/form-data
在JAVA端我们使用由提供的文件上传组件fileupload,通过这个组件我们可以很容易的将文件上传到服务器。需要注意的是当将FORM的ENCTYPE属性标签值设置为multipart/form-data后,通过request.getParameter(“controlName”)就读不到页面中的控件名的controlName所对应的值。如果需要读取页面中其它控件值时需要使用该组件提供的方法:
DiskFileUpload upload = new DiskFileUpload();
List list = upload.parseRequest(request);
通过该方法可将request中全部表单控件及其值读到List中(具体读取方法详见代码)。
上传文件时需要有一个文件路径,建议通过配置文件的方式进行读取,不要在程序中写死。这样就便于以后程序的发布。还有需要注意的就是上传文件时需要判断上传目录中是否有同名的文件,否则在上传过程中会将原有文件覆盖。
文件下载:
文件下载相对上传要简单许多,只需知道下载文件路径和文件名就可以。通过以下代码就可以将文件从服务器端下载到客户端。
//path为文件路径 fileName为文件名称(包含文件后缀)
File file = new File(path + / + fileName); response.setContentType(text/html;charset=GBK);
response.setHeader(Content-Disposition, attachment;filename=\ + new String(file.getName().getBytes(), ISO-8859-1) + \);
OutputStream out = response.getOutputStream();
FileInputStream in = new FileInputStream(file);
try
{
byte[] buf = new byte[512];
int len = 0;
while ((len = in.read(buf)) != -1)
{
out.write(buf, 0, len);
}
}
finally
{
in.close();
out.close();
}
3、结论、解决方案及效果
a、编写JSP文件,在文件中加入以下信息:
form method=post action= enctype=multipart/form-data
input type=file name=importFile
input type=button value=”文件上传” onClick=”doUpLoadFile();”
/form
加入Java Script脚本:
script language=”javascript”
!—
function doUpLoadFile()
{
var file = document.all.importFile;
if (file.value == )
{
alert(请选择要上传的文件);
return;
}
//查看文件是否存在
var fso = new ActiveXObject(Scripting.FileSystemObject);
if (!fso.FileExists(file.value))
{
alert(该文件不存在,请重新选择);
return;
}
//此处的action根据实际情况进行设置
document.forms[0].action = inventoryF
文档评论(0)