Struts实现文件上传

2008.12.20 / 标签: ,, / 分类: J2EE技术

客户端浏览器向WEB服务器上传文件是件比较复杂的事,之前我们有[jsp实现文件上传]和[Servlet中实现文件上传] 这两种方式,我们发现那都需要写很多代码,而使用Struts为我们提供的文件上传机制就简单容易的多了。

阅读全文>>

jsp实现文件上传

2008.04.24 / 标签: / 分类: J2EE技术
Sofa

这里我们使用第三方组件来实现上传,需要的jar包为:commons-fileupload-1.0.jar 使用Jbuilder建立好工程后,先创建一个jsp页面,该页面代码如下:

<%@page contentType="text/html; charset=GBK"%>
<html>
<head>
<title>
static</title>
</head>
<body>
<h3 
align="center">上传静态页面</h3>
<table 
border="1" align="center">
  <form 
action="upload2.jsp" method="POST" enctype="Multipart/form-data">
  <tr>
    <td>
      <input 
type="file" name="file1"/>
    </td>
  </tr>
    <tr>
    <td>
      <input 
type="file" name="file2"/>
    </td>
  </tr>
  <tr>
    <td 
align="right">
      <input 
type="submit" name="submit" value="上传"/>
    </td>
  </tr>
  </form>
</table>
</body>
</html>
其中form的enctype属性是必填项。接下来创建上传处理页面,代码如下:

<%@page contentType="text/html; charset=GBK" import="java.util.*,java.io.*"%>
<%
@page import="org.apache.commons.fileupload.*,com.accp.*"%>
<%
DBManager dbm new DBManager();%>
<%
  
//实例化上传对象
  
DiskFileUpload dfu new DiskFileUpload();
  
//设置上传文件大小 单位:字节
  
dfu.setSizeMax(100000);
  
//设置最多在内存中存储的数据大小 单位:自己
  
dfu.setSizeThreshold(50000);
  
// 设置一旦文件大小超过getsizethreshold()的值时数据存放在硬盘的目录
  
dfu.setRepositoryPath("E:\\FileUpload\\TEMP");
  
List fileitems null;
  
try {
    
//开始读取上传文件
    
fileitems dfu.parseRequest(request);
  }
  
catch (Exception ex) {
  }
  
// 依次处理每个上传的文件
  
Iterator it fileitems.iterator();
  
while (it.hasNext()) {
    
FileItem item = (FileItemit.next(); //强制类型转换为FileItem
    
String str item.getName();
    
//    System.out.println("strFist = " + str);
    //忽略其他不是文件域的所有表单信息
    
if (!item.isFormField()) {
      
//保存上传的文件到指定的目录
      
File dir new File("E:\\FileUpload");
      
//如果浏览器传送的文件名是全路径名,则取出文件名。
      
int str.lastIndexOf(File.separator); //File.separator = "\\"
      
if (0) {
        
str str.substring(1str.length());
      }
      
//System.out.println("dir = " + dir);
      //  System.out.println("str = " + str);
      
File names new File(dirstr);
      
System.out.println("names = " names);
      
if (dbm.insert(names.toString())) {
        
System.out.println("保存成功");
      }
      
try {
        
item.write(names); //写入文件
      
}
      
catch (Exception ex) {
        
ex.printStackTrace();
        
System.out.println("写入文件出错");
      }
    }
  }
  
out.print("上传成功啦");
%>

无觅相关文章插件,快速提升流量