龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

用JavaBean实现文件上载(二)上载文件[组图]

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
上载文件 众所周知,JavaBean是Java平台的软件组件,下面要实现的上载功能就是用JavaBean实现,所以它可以方便地应用到任何需要文件上载功能的应用之中。 代码清单如下: package com.br
上载文件
  
     众所周知,JavaBean是Java平台的软件组件,下面要实现的上载功能就是用JavaBean实现,所以它可以方便地应用到任何需要文件上载功能的应用之中。
  
   代码清单如下:
  
   package com.brainysoftware.web;
  
   <!-- frame contents -->
<!-- /frame contents --> import javax.servlet.http.HttpServletRequest;
   import javax.servlet.ServletInputStream;
   import java.util.Dictionary;
   import java.util.Hashtable;
   import java.io.PrintWriter;
   import java.io.BufferedWriter;
   import java.io.FileWriter;
   import java.io.IOException;
  
   public class FileUploadBean {
  
   private String savePath, filepath, filename, contentType;
   private Dictionary fields;
  
   public String getFilename() {
   return filename;
   }
  
   public String getFilepath() {
   return filepath;
   }
  
   public void setSavePath(String savePath) {
   this.savePath = savePath;
   }
  
   public String getContentType() {
   return contentType;
   }
  
   public String getFieldValue(String fieldName) {
   if (fields == null fieldName == null)
   return null;
   return (String) fields.get(fieldName);
   }
  
   private void setFilename(String s) {
   if (s==null)
   return;
  
   int pos = s.indexOf("filename="");
   if (pos != -1) {
   filepath = s.substring(pos+10, s.length()-1);
   // Windows浏览器发送完整的文件路径和名字
   // 但Linux/Unix和Mac浏览器只发送文件名字
   pos = filepath.lastIndexOf("");
   if (pos != -1)
   filename = filepath.substring(pos + 1);
   else
   filename = filepath;
   }
   }
   private void setContentType(String s) {
   if (s==null)
   return;
  
   int pos = s.indexOf(": ");
   if (pos != -1)
   contentType = s.substring(pos+2, s.length());
   }
  
   public void doUpload(HttpServletRequest request) throws IOException {
   ServletInputStream in = request.getInputStream();
  
   byte[] line = new byte[128];
   int i = in.readLine(line, 0, 128);
   if (i < 3)
   return;
   int boundaryLength = i - 2;
  
   String boundary = new String(line, 0, boundaryLength); //-2丢弃换行字符
   fields = new Hashtable();
  
   while (i != -1) {
   String newLine = new String(line, 0, i);
  
  
精彩图集

赞助商链接