<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Rising Sun

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      148 隨筆 :: 0 文章 :: 22 評論 :: 0 Trackbacks
    package MEDET.servlets;
    import java.net.*;
    import java.io.*;
    import java.util.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    public class SaveFileServlet extends HttpServlet
    {
    ?? FileWriter savefile;
    ?? String filename = null;
    ?? String value = null;
    ?? /**
    ?? * Handles a POST request
    ?? */
    ?? public void doPost(
    ???????? HttpServletRequest request,
    ???????? HttpServletResponse response)
    ????? throws ServletException, IOException
    ?? {
    ????? PrintWriter out = response.getWriter();
    ????? response.setContentType("text/html");
    ????? //FileWriter savefile;
    ????? try {

    ???????? // Verify the content type

    ???????? String ct = request.getContentType();
    ???????? if (!ct.startsWith("multipart/form-data"))
    ??????????? throw new RuntimeException
    ??????????? ("Invalid content type");

    ???????? // Get the boundary string

    ???????? int p = ct.indexOf("boundary=");
    ???????? if (p == -1)
    ??????????? throw new RuntimeException
    ??????????? ("No boundary string found");

    ???????? p += "boundary=".length();
    ???????? String boundary = "--" + ct.substring(p);
    ???????? String finalBoundary = boundary + "--";

    ???????? // We'll parse the multipart/form-data
    ???????? // with a finite state machine

    ???????? // Define names for the parser states

    ???????? final int INIT = 0;
    ???????? final int READING_HEADERS = 1;
    ???????? final int READING_DATA = 2;

    ???????? int state = INIT;

    ???????? // Read and extract the fields

    ???????? BufferedReader in = request.getReader();
    ???????? main: for (;;) {
    ??????????? String line = in.readLine();
    ??????????? if (line == null)
    ?????????????? break;

    ??????????? switch (state) {

    ?????????????? // State 0: Ignoring everything before
    ?????????????? // the first boundary

    ?????????????? case INIT:
    ????????????????? if (line.startsWith(finalBoundary))
    ???????????????????? break main;
    ????????????????? if (line.startsWith(boundary)) {
    ???????????????????? state = READING_HEADERS;
    ???????????????????? filename = "";
    ???????????????????? value = "";
    ????????????????? }
    ????????????????? break;

    ?????????????? // State 1: Parsing the headers

    ?????????????? case READING_HEADERS:
    ????????????????? if (line.length() == 0)
    ???????????????????? state = READING_DATA;
    ????????????????? else {

    ???????????????????? // Get the field name

    ???????????????????? p = line.indexOf("filename=\"");
    ???????????????????? if (p == -1)
    ??????????????????????? break;
    ???????????????????? p += "filename=\"".length();

    ???????????????????? // ... up to the closing quote.

    ???????????????????? int q = line.indexOf("\"", p);
    ???????????????????? if (q == -1)
    ??????????????????????? break;
    ???????????????????? filename = line.substring(p, q);
    ???????????????????? filename="./config/medet/applications/DefaultWebApp/"+filename.substring(filename.lastIndexOf("\\")+1);
    ???????????????????? savefile=new FileWriter(filename);
    ???????????????????? value = "";
    ????????????????? }
    ????????????????? break;

    ?????????????? // State 2: Reading the data

    ?????????????? case READING_DATA:
    ????????????????? if (line.startsWith(finalBoundary)) {
    ???????????????????? savefile.write(value);
    ???????????????????? savefile.close();
    ???????????????????? break main;
    ????????????????? }
    ????????????????? if (line.startsWith(boundary)) {
    ???????????????????? state = READING_HEADERS;
    ????????????????? }
    ????????????????? else {
    ???????????????????? if (value.length() > 0)
    ??????????????????????? value += "\n";
    ???????????????????? value += line;
    ????????????????? }
    ????????????????? break;
    ??????????? }

    ???????? }
    ???????? // Report the incident number back to the client
    ???????? String[] text = {
    ??????????? "<HTML>",
    ??????????? "<HEAD>",
    ??????????? "<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>",
    ??????????? "<TITLE>文件上傳成功</TITLE>",
    ??????????? "</HEAD>",
    ??????????? "<BODY>",
    ??????????? "<CENTER>",
    ??????????? "<H3>文件上傳成功!</H3>",
    ??????????? "</CENTER>"
    ???????? };
    ???????? for (int i = 0; i < text.length; i++)
    ??????????? out.println(text[i]);
    ??????????? out.println(filename);
    ??????????? out.println("</BODY>");
    ??????????? out.println("</HTML>");
    ????? }

    ????? catch (Exception e) {
    ???????? // Write the exception message
    ???????? out.println("<H3>Error:</H3>");
    ???????? out.println("<PRE>");
    ???????? out.println(e.getMessage());
    ???????? out.println("</PRE>");
    ????? }
    ????? finally {
    ???????? out.flush();
    ????? }
    ?? }
    }
    posted on 2006-07-13 15:01 brock 閱讀(917) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲电影免费在线观看| 国产精品视频全国免费观看| 99精品视频在线视频免费观看| 亚洲一区精品伊人久久伊人| 无码人妻一区二区三区免费视频| 国产女高清在线看免费观看| 美国毛片亚洲社区在线观看| 免费在线观看视频a| WWW免费视频在线观看播放| 亚洲欧洲美洲无码精品VA| 两个人看的www高清免费视频 | 国产AV无码专区亚洲AV琪琪| 免费大香伊蕉在人线国产| 深夜A级毛片视频免费| 亚洲情侣偷拍精品| 波多野结衣免费一区视频| 亚洲a一级免费视频| 日韩精品成人无码专区免费 | 免费无码肉片在线观看| 亚洲一本到无码av中文字幕| 在线观看91精品国产不卡免费| 精品在线视频免费| 亚洲永久精品ww47| 国产91免费在线观看| 亚洲国产综合AV在线观看| 亚洲午夜福利精品久久| 久久国产精品萌白酱免费| www.亚洲成在线| 亚洲女人被黑人巨大进入| 免费成人在线视频观看| 亚洲国产成人久久精品app| 四虎影视在线永久免费观看| 美女视频黄的免费视频网页| tom影院亚洲国产一区二区| 亚洲日韩涩涩成人午夜私人影院| 四虎国产精品永久免费网址| 一本色道久久88亚洲精品综合| 亚洲人成色77777在线观看大| 特级精品毛片免费观看| 精品亚洲成A人在线观看青青 | 亚洲乱码一二三四五六区|