java web 上传保存xml文件

 java程序和接收的servlet如下:  
  package   com.swt.test;  
   
  import   java.io.DataInputStream;  
  import   java.io.File;  
  import   java.io.FileInputStream;  
  import   java.io.InputStream;  
  import   java.io.OutputStream;  
  import   java.net.HttpURLConnection;  
  import   java.net.URL;  
   
  public   class   UploadXMLFile   {  
   
          /**  
            *   上传xml文件  
            *    
            *   @param   strFile  
            *                         上传带绝对路径的文件名  
            *   @param   strURL  
            *   @return   result   上传成功,result="SUCCESS",其他则为出错信息。  
            */  
          public   synchronized   String   uploadXMLFile(final   String   strFile,   final   String   strURL)   {  
   
                  String   result   =   null;  
   
                  try   {  
                          URL   url   =   new   URL(strURL   +   "?filename="   +   strFile);  
                          HttpURLConnection   conn   =   (HttpURLConnection)   url.openConnection();  
                          conn.setDoOutput(true);  
                          conn.setDoInput(true);  
                          conn.setUseCaches(false);  
                          conn.setRequestProperty("enctype",   "multipart/form-data");  
                          conn.setRequestProperty("contentType",   "charset=GBK");  
                          conn.setRequestMethod("POST");  
   
                          //上传xml文件  
                          DataInputStream   file   =   new   DataInputStream(new   FileInputStream(  
                                          new   File(strFile)));  
                          OutputStream   out   =   conn.getOutputStream();  
                          int   bytesOut   =   0;  
                          byte[]   bufferOut   =   new   byte[8192];  
                          while   ((bytesOut   =   file.read(bufferOut,   0,   8192))   !=   -1)   {  
                                  out.write(bufferOut,   0,   bytesOut);//  
                          }  
                          out.flush();  
                          out.close();  
   
                          //获得上传的结果  
                          InputStream   isResult   =   conn.getInputStream();  
                          byte[]   buffer   =   new   byte[isResult.available()];  
                          isResult.read(buffer);  
                          result   =   new   String(buffer);  
                          isResult.close();  
   
                  }   catch   (Exception   e)   {  
                          result   =   "ERROR";  
                          System.out.println(e.getMessage());  
                  }  
                  return   result;  
          }  
   
          public   static   void   main(String[]   args)   {  
                  UploadXMLFile   uxf   =   new   UploadXMLFile();  
                  System.out.println("上传文件结果");  
                  String   sb   =   uxf.uploadXMLFile("D://swt.xml",  
                                  "http://localhost:8080/beh/xml.163");  
                  System.out.println(sb);  
   
          }  
   
  }  
   
   
  接收的servlet  
  package   com.swt.servlet;  
   
  import   java.io.BufferedReader;  
  import   java.io.BufferedWriter;  
  import   java.io.File;  
  import   java.io.FileNotFoundException;  
  import   java.io.FileOutputStream;  
  import   java.io.IOException;  
  import   java.io.InputStream;  
  import   java.io.ObjectInputStream;  
  import   java.io.OutputStream;  
  import   java.io.PrintWriter;  
  import   java.io.UnsupportedEncodingException;  
   
  import   javax.servlet.ServletException;  
  import   javax.servlet.ServletInputStream;  
  import   javax.servlet.http.HttpServlet;  
  import   javax.servlet.http.HttpServletRequest;  
  import   javax.servlet.http.HttpServletResponse;  
   
  import   org.apache.commons.logging.Log;  
  import   org.apache.commons.logging.LogFactory;  
   
   
  /**  
    *  
    *   @author   sweater  
    */  
  public   class   GetXMLFile   extends   HttpServlet   {  
   
           
          private   final   static   Log   log   =   LogFactory.getLog(LoginAction.class);  
           
          /**  
            *   Constructor   of   the   object.  
            */  
          public   GetXMLFile()   {  
                  super();  
          }  
   
          /**  
            *   Destruction   of   the   servlet.   <br>  
            */  
          public   void   destroy()   {  
                  super.destroy();   //   Just   puts   "destroy"   string   in   log  
                  //   Put   your   code   here  
          }  
   
          /**  
            *   The   doPost   method   of   the   servlet.   <br>  
            *  
            *   This   method   is   called   when   a   form   has   its   tag   value   method   equals   to   post.  
            *    
            *   @param   request   the   request   send   by   the   client   to   the   server  
            *   @param   response   the   response   send   by   the   server   to   the   client  
            *   @throws   ServletException   if   an   error   occurred  
            *   @throws   IOException   if   an   error   occurred  
            */  
          public   void   doPost(HttpServletRequest   request,   HttpServletResponse   response)  
                          throws   ServletException,   IOException   {  
                   
                  System.out.println(this.getClass());  
                  //System.out.println((String)request.getParameter("filename"));            
   
  response.setContentType("text/html");  
  PrintWriter   outResult   =   null;  
                  try   {  
                          outResult   =   response.getWriter();  
                  }   catch   (IOException   ioE)   {  
                  }  
                   
                  String   saveFile   =   "D://get.xml";//""";  
                  String   uploadReult   =   "ERROR";  
                  int   reqStreamLen   =   request.getContentLength();  
                  BufferedReader   readFile   =   null;  
                  BufferedWriter   writeFile   =   null;  
                   
                  try   {  
                          InputStream   is   =   request.getInputStream();  
                          OutputStream   os   =   new   FileOutputStream(saveFile);//建立一个上传文件的输出流"D://get.xml"  
                          int   bytesRead   =   0;  
                          byte[]   buffer   =   new   byte[8192];  
                          while   ((bytesRead   =   is.read(buffer,   0,   8192))   !=   -1)   {  
                                  os.write(buffer,   0,   bytesRead);//传过来的文件写入文件  
                                  //System.out.println(new   String(buffer));  
                          }  
                          os.flush();  
                          os.close();  
                          is.close();  
   
                  }   catch   (UnsupportedEncodingException   e)   {  
                          uploadReult   =   "UnsupportedEncodingException";  
                          log.info(e.getMessage());  
                          e.printStackTrace();  
                  }   catch   (FileNotFoundException   e)   {  
                          uploadReult   =   "FileNotFoundException";  
                          log.info(e.getMessage());  
                          e.printStackTrace();  
                  }   catch   (IOException   e)   {  
                          uploadReult   =   "IOException";  
                          log.info(e.getMessage());  
                          e.printStackTrace();  
                  }  
                   
                  String   uploadFile   =   (String)request.getParameter("filename");                  
                  File   file   =   new   File(saveFile);  
                  log.info(String.valueOf(file.length()));  
                  log.info(String.valueOf(reqStreamLen));  
                  if(file.exists()&&(file.length()==reqStreamLen)){  
                          uploadReult   =   "SUCCESS";  
                          log.info(request.getRemoteAddr()   +   "上传文件:"   +   uploadFile   +   "   成功");  
                  }else{  
                          uploadReult   =   "ERROR";  
                          log.info(request.getRemoteAddr()   +   "上传文件:"   +   uploadFile   +   "   失败");  
                  }  
                   
                  outResult.println(uploadReult);  
                  outResult.flush();  
                  outResult.close();  
                   
          }  
           
          public   void   doGet(HttpServletRequest   request,   HttpServletResponse   response)  
          throws   ServletException,   IOException   {  
                this.doPost(request,response);  
          }  
   
   
          /**  
            *   Initialization   of   the   servlet.   <br>  
            *  
            *   @throws   ServletException   if   an   error   occure  
            */  
          public   void   init()   throws   ServletException   {  
   
          }  
   
  }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值