Java选择文件上传
在HTML元素里有一个file类型,
<input type = "file">
当文件选择完成之后则应该跟随表单一起提交到服务器上,那么此时的服务器可以采用二进制的方式进行内容的接收,但是这样的处理难度太大了,所以为了简化这种操作,一些第三方的插件就应运而生。
当并没有选择使用框架开发的时候,不建议FileUpload组件,推荐SmartUpload组件。组件是一个已*.jar文件的形式出现,所以在项目中使用组件的话则需将*.jar文件拷贝到WEB-INF/lib目录下;
使用SmartUpload组件组件开发注意以下问题:
1.要进行文件上传的表单必须封装为二进制的数据流形式;
<!DOCTYPE html>
<html>
<head>
<title>MyHtml.html</title>
<meta charset="utf-8">
</head>
<body>
<form action="MyJsp.jsp" method="post" enctype="multipart/form-data">
选择照片:<input type="file" name="pic">
<input type="submit" value="上传">
</form>
</body>
</html>
<meta charset="utf-8">
解决在页面上出现中文乱码的问题,如果没有这句话,页面如下:
enctype="multipart/form-data"
则是将要进行文件上传的表单必须封装为二进制的数据流形式;
2.随后在接受上传的页面里面按照如下步骤操作:
- 实例化SmartUpload类对象;
- 初始化上传环境;
- 接收所有上传的数据;
- 文件保存;
代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="com.jspsmart.upload.*" %>
<html>
<head>
<title>上传</title>
</head>
<%
//1.实例化SmartUpload类对象
SmartUpload smart = new SmartUpload();
//2.初始化上传环境
smart.initialize(config, request, response);
//3.接收所有上传的数据
smart.upload();
//4.文件保存
smart.save("/save");
%>
</html>
代码虽然简单,但还是有值得注意的地方,记得要找到SmartUpload的开发包。如果不导入开发包的话,是接收不了上传的信息的:
<%@ page import="com.jspsmart.upload.*" %>
还有我将save文件夹创建在了这里:
例如我要上传一张照片,结果如下: