⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getfile.java

📁 JAVA编程百例书中各章节的所有例子的源代码,包括套接字编程
💻 JAVA
字号:
package ch08.section08;

import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class GetFile
    extends HttpServlet {
  private static final String CONTENT_TYPE = "text/html; charset=gb2312";
  MailUser mailUser;
  MailInfo mf;
  public void init() throws ServletException {
  }

  public void doGet(HttpServletRequest request, HttpServletResponse response) throws
      ServletException, IOException {
    response.setContentType(CONTENT_TYPE);
    PrintWriter out = response.getWriter();
    javax.servlet.http.HttpSession session = request.getSession();
    mailUser = (MailUser) session.getAttribute("_mailUser");
    String s_id = request.getParameter("id");
    int msg = Integer.parseInt(s_id);

    showPart(request, response, mailUser, msg, 1);
  }

  public void showPart(HttpServletRequest req,
                       HttpServletResponse resp,
                       MailUser mailUser,
                       int msg, int part) throws ServletException,
      java.io.IOException {
    java.io.PrintWriter out = resp.getWriter();
    try {
      Folder inbox = mailUser.getInbox();
      Message[] msgs = inbox.getMessages();
      Message m = msgs[msg];
      Multipart mp = (Multipart) m.getContent();
      Part p = mp.getBodyPart(part);
      String contentType = p.getContentType();
      if (contentType == null) {
        out.println("Invalid message part at " + part);
      }
      else {
        ContentType type = new ContentType(contentType);
        resp.setContentType(type.getBaseType());
        resp.setHeader("Content-Disposition",
                       String.valueOf( (new StringBuffer(String.valueOf(
            "attachment;"))).
                                      append(" filename=").append(p.getFileName())));
        java.io.InputStream in = p.getInputStream();
        int b;
        while (true) {
          b = in.read();
          if (b == -1) {
            break;
          }
          out.write(b);
        }
      }

    }
    catch (MessagingException ex) {
      out.println("<br>");
      out.println("ERROR: " + ex.getMessage());
    }

    out.flush();
  }

  protected String getAddress(Address address) {
    String name = "";
    if (address != null) {
      name = "" + address;
      if (address instanceof InternetAddress) {
        String personal =
            ( (InternetAddress) address).getPersonal();
        if (personal != null) {
          name = personal;
        }
      }
    }
    return name;
  }

  protected String formatAddresses(Address addresses[]) {
    String s = "";

    if (addresses != null) {
      for (int i = 0; i < addresses.length; i++) {
        if (i > 0) {
          s += ", ";
        }
        s += getAddress(addresses[i]);
      }
    }

    return s;
  }

  public void doPost(HttpServletRequest request, HttpServletResponse response) throws
      ServletException, IOException {
    doGet(request, response);
  }

  public void destroy() {
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -