栏目分类
Java组件commons fileupload实现文件上传功能
发布日期:2025-01-03 18:24 点击次数:104
Apache提供的commons-fileupload jar包实现文件上传确实很简单,最近要用Servlet/JSP做一个图片上传功能,在网上找了很多资料,大多是基于struts框架介绍的,还有些虽然也介绍common-fileupload的上传,但是那些例子比较老,有些类现在都废弃了。
通过研究学习总结,终于完成了这个上传功能,下面与大家分享一下。
案例场景
一个图书馆后台管理界面,需要提供上传图书图片的功能并且最终显示在页面中。
实现效果
进入添加书籍页面,默认显示一个图片“暂无突破”(长宽均为200px),提供一个按钮“上传图片”,如下图效果。
点击“上传图片”按钮,通过模式窗口弹出上传界面,如下图所示。
通过“浏览”按钮选择指定图片,点击“上传”按钮进行上传,如果上传成功则弹出成功提示,用户点击“确定”后关闭弹出窗并自动将新图片显示在页面上,如下图所示。
代码实现
①首先创建一个添加书籍页面:bookAdd.jsp
页面id为photo_id的hidden标签用于存储图片路径,方便提交到后台存放到数据库,id为img_id的<img>标签用于显示图片,所有图片都存放在服务器下,方便读取。然后一个关键js,点击button通过模式窗口弹出上传页面,在弹出模式窗口时定义了一个变量win,该变量用于获取模式窗口传回的图片路径值。
(注意:因为安全性问题图片不能图片不能随意存放,项目部署在服务器中,图片就只能放在该服务器下才能查看得到,如果一定要读取非当前服务器下的图片需要配置服务器的虚拟目录)
②创建上传图片页面,bookUpload.jsp
注意一定要定义<base>标签,当前模式窗口关闭时才能将数据返回到父窗体,<form>标签还要设置一个属性enctype="multipart/form-data"这样提交的文件才能被后台获取,点击“上传”button即可将文件向后台传送,剩下的重头戏就是后台上传处理了。
③创建一个普通的Servlet,下面只提供部分关键代码
红色代码部分是上传的关键代码,其它就是作为点缀了。完成这三步,一个简单的上传即实现了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。