示例#1
0
 public Server(String uri, String dirpass)
 {
     listener = new HttpListener();
     listener.Prefixes.Add(uri);
     this.uri      = uri;
     this.filebase = new File_Base("USERS_DIRS");
 }
示例#2
0
        public void ParseRequest(String[] requestresult, HttpListenerContext context)
        {
            Boolean result;

            switch (requestresult[0])
            {
            case "GET":
                if (requestresult[1] == "ALL")
                {
                    SendResponse(Encoding.UTF8.GetBytes(filebase.GetAllFilesNames()), context);
                }
                else
                {
                    if (GetFileBytes(requestresult[1]) != null)
                    {
                        SendResponse(GetFileBytes(requestresult[1]), context);
                    }
                    else
                    {
                        SendResponse("file not found", context);
                    }
                }
                break;


            case "PUT":
                result = AddFile(requestresult[1], filebase.dirpass + "/" + requestresult[1]);

                if (!result)
                {
                    SendResponse("Can't add file", context);
                }
                else
                {
                    SendResponse("File add sucsessfully", context);
                }

                break;


            case "DELETE":
                result = DeleteFile(requestresult[1]);
                if (!result)
                {
                    SendResponse("File not found", context);
                }
                else
                {
                    SendResponse("Done", context);
                }
                break;

            case "POST":
                if (requestresult[1] == "SETDIR")
                {
                    filebase = new File_Base("USERS_DIRS/" + Encoding.UTF8.GetString(requestcontent));
                }
                else
                {
                    DeleteFile(requestresult[1]);
                    AddFile(requestresult[1], filebase.dirpass + "/" + requestresult[1]);
                    SendResponse("Done", context);
                }
                break;

            case "COPY":
                String newfilename = Encoding.UTF8.GetString(requestcontent);
                result = CopyFile(newfilename, filebase.dirpass + "/" + newfilename, filebase.dirpass + "/" + requestresult[1]);

                if (!result)
                {
                    SendResponse("Can't copy file", context);
                }
                else
                {
                    SendResponse("File copy sucsessfully", context);
                }


                break;
            }
            filebase.Refresh();
        }