JSP上传图片总结

Jsp上传图片总结

一、在Web项目中导入commons-fileupload-1.2.2.jarcommons-io-2.4.jar;

 

二、JSP页面中写入以下代码:

<form  action="" enctype="multipart/form-data" method="post">

<input  type="file" name="image"/>

</form >

注意:1>enctype="multipart/form-data" 用于上传二进制数据,只有使用了multipart/form-data才能完整的传递文件数据。

2> method="post"  上传文件时method取值必须为post

3><input  type="file" name="image"/> name属性不能为空,否则servlet中找不到数据

三、Servlet中处理代码:

try {

String uploadFileName = ""// 上传的文件名

String fieldName = ""// 表单字段元素的name属性值

// 请求信息中的内容是否是multipart类型

boolean isMultipart = ServletFileUpload.isMultipartContent(request);

// 上传文件的存储路径(服务器文件系统上的绝对文件路径)

String uploadFilePath = request.getSession().getServletContext()

.getRealPath("upload/");

File fullFile = null;

String fileType=null;

if (isMultipart) {

FileItemFactory factory = new DiskFileItemFactory();

ServletFileUpload upload = new ServletFileUpload(factory);

// 解析form表单中所有文件

List<FileItem> items = upload.parseRequest(request);

Iterator<FileItem> iter = items.iterator();

while (iter.hasNext()) { // 依次处理每个文件

    FileItem item = (FileItem) iter.next();  

if (item.isFormField()) {  // 普通表单字段返回true,文件表单字段返回false      fieldName = item.getFieldName(); // 表单字段的name属性值

String value=item.getString("UTF-8");//获取表单字段的值

if (fieldName.equals("name")) {

auctionInfo.setName(value);

}

} else {

 String fileName = item.getName();

if (fileName != null && !fileName.equals("")) {

fullFile = new File(item.getName());

File saveFile = new File(uploadFilePath,

fullFile.getName());

item.write(saveFile);

/*

* 将文件转换为二进制文件

* */

InputStream is = new FileInputStream(saveFile);

byte[] byteArray = new byte[is.available()];

is.read(byteArray);

is.close();

//将二进制文件添保存到对象中

auctionInfo.setImage(byteArray);

//使用saveFile.getAbsolutePath();可以得到图片存储导数据中的绝对路径

}

}

}

}

auction.insertAuction(auctionInfo);  //保存到数据库中

    //此处填写跳转页面语句

catch (Exception e) {

e.printStackTrace();

//此处填写跳转页面语句

}

注意:为了容易理解此代码精简后的代码,可实现简单的上传图片路径或将二进制文件保存到数据库中。不管以何种方式保存到数据库中upload文件夹下都将有图片。

Ps:以二进制保存到数据库中的结果图:



第一篇在CSDN博客,目的希望能解决大家jsp上传的问题。有疑问可以留言。

相关文章
相关标签/搜索