今天第一次用<html-file>标签来进行文件的导入功能,需求主要就是能将txt文本里的内容存取到oracle数据库中,这里主要的一步就是先将文件写入服务器,再去读取服务器上的文件,启动一个线程,定时去删除服务器上的文件。当时没考虑要先把文件写到服务器上,失误,失误啊。
String path = servlet.getServletContext().getRealPath("/upload");
String fileName = getImportName().getFileName();
InputStream is = getImportName().getInputStream();
OutputStream os = new FileOutputStream(path + "/" + fileName);
int bytes = 0;
byte[] buffer = new byte[8192];
while ((bytes = is.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytes);
}
os.close();
is.close();
tFile.destroy();
//这时候才能开始去读取文件内容
File file = new File(path, fileName);
PS:
<html:file>必须在<html:form>标签中
<html:form>的method属性必须设为"POST"
<html:form>的编码类型enctype属性必须设为"multipart/form-data"
1文件在客户机上,所以不能使用获得文件路径的方式来获取文件
2由于使用get方式提交表单时,可提交的串长度受到限制,所以,在上传文件时必须使用post方式
3上传文件操作所在的表单标记中必须将enctype属性设为multipart/form-data