예제 #1
0
    protected void FileUpload(object sender, EventArgs e)
    {
        if (!Uploader.HasFile)
        {
            Response.Write("<script>alert(\"请先选择文件再点击上传\");</script>");
        }
        else
        {
            if (!(Uploader.FileName.EndsWith(".doc", true, CultureInfo.CurrentCulture) ||
                  Uploader.FileName.EndsWith(".docx", true, CultureInfo.CurrentCulture) ||
                  Uploader.FileName.EndsWith(".ppt", true, CultureInfo.CurrentCulture) ||
                  Uploader.FileName.EndsWith(".pptx", true, CultureInfo.CurrentCulture) ||
                  Uploader.FileName.EndsWith(".7z", true, CultureInfo.CurrentCulture) ||
                  Uploader.FileName.EndsWith(".tar.gz", true, CultureInfo.CurrentCulture) ||
                  Uploader.FileName.EndsWith(".pdf", true, CultureInfo.CurrentCulture) ||
                  Uploader.FileName.EndsWith(".cvs", true, CultureInfo.CurrentCulture) ||
                  Uploader.FileName.EndsWith(".zip", true, CultureInfo.CurrentCulture)))
            {
                Response.Write("<script>alert(\"不能上传的格式!\");</script>");
            }
            else
            {
                var succeed = 0;
                if (Request.QueryString["ceid"] != null)
                {
                    var savePath = Server.MapPath("~/UserUploads/Experiments/") +
                                   ((Student)Session["user"]).StudentNumber + "\\";
                    if (!Directory.Exists(savePath))
                    {
                        Directory.CreateDirectory(savePath);
                    }
                    var millisecond = DateTime.Now.Millisecond;
                    Uploader.SaveAs(savePath + millisecond + Uploader.FileName);
                    var experiment = new Experiment()
                    {
                        Name = Uploader.FileName,
                        Path = savePath.Remove(0, Server.MapPath("~").Length - 1) + millisecond + Uploader.FileName
                    };

                    //由ceid获得courseExperiment

                    var ceid = int.Parse(Request.QueryString["ceid"]);

                    succeed = new ExperimentServiceImpl().Submit(
                        (CourseExperiment)(Session["ThatCourseExperiment" + ceid]),
                        (Student)(Session["user"]), experiment);
                    Session.Remove("ThatCourseExperiment" + ceid);
                }
                else if (Request.QueryString["chid"] != null)
                {
                    var savePath = Server.MapPath("~/UserUploads/Homeworks/") +
                                   ((Student)Session["user"]).StudentNumber + "\\";
                    if (!Directory.Exists(savePath))
                    {
                        Directory.CreateDirectory(savePath);
                    }
                    var millisecond = DateTime.Now.Millisecond;
                    Uploader.SaveAs(savePath + millisecond + Uploader.FileName);
                    var homework = new Homework()
                    {
                        Name = Uploader.FileName,
                        Path = savePath.Remove(0, Server.MapPath("~").Length - 1) + millisecond + Uploader.FileName
                    };

                    //由ceid获得courseExperiment

                    var chid = int.Parse(Request.QueryString["chid"]);

                    succeed = new HomeworkServiceImpl().Submit(
                        (CourseHomework)(Session["ThatCourseHomework" + chid]),
                        (Student)(Session["user"]), homework);
                    Session.Remove("ThatCourseExperiment" + chid);
                }
                else
                {
                    Response.Write("<script>出现异常</script>");
                }

                Response.Write(succeed == 1
                    ? "<script>alert(\"上传成功!\");window.close();opener.location.reload();</script>"
                    : "<script>alert(\"上传失败请重试!\");</script>");
            }
        }
    }
예제 #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        AuthHelper.LoginCheck(Session, Request, Response, Server);
        AuthHelper.TeacherOnlyPage(Session, Request, Response, Server);

        if (Request.QueryString["pt"] == null || Request.QueryString["id"] == null)
        {
            Response.Redirect("~/Default.aspx");
        }

        string pageType = Request.QueryString["pt"];
        int    id       = int.Parse(Request.QueryString["id"]);

        if (pageType == "ho")
        {
            var service   = new HomeworkServiceImpl();
            var homeworks = service.GetHomeworkByCourseHomeworkId(id);

            var downloadUrLs = homeworks.Aggregate("",
                                                   (current, homework) => current + ("http://" + Request.Url.Host + homework.Path + Environment.NewLine));
            downloadUrLs = downloadUrLs.Replace("\\", "/");
            Response.Write(downloadUrLs);

            var path = homeworks.Select(homework => homework.Path).ToList();


            var buffer = Download(path.ToArray());
            if (buffer != null)
            {
                Response.Clear();
                Response.Charset         = "GB2312";
                Response.ContentEncoding = System.Text.Encoding.UTF8;
                Response.AddHeader("Content-Disposition",
                                   "attachment; filename=" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".zip");
                Response.BinaryWrite(buffer); //输出
                Response.Flush();
                Response.End();
            }

            /*var command = "7z a homework.zip ";
             * foreach (var homework in homeworks)
             * {
             *  command = command + "\"" + homework.Path + "\"" + " ";
             * }*/


            /*Process process = new Process
             * {
             *  StartInfo =
             *  {
             *      UseShellExecute = false,
             *      RedirectStandardOutput = true,
             *      RedirectStandardError = true,
             *      CreateNoWindow = true,
             *      FileName = "cmd.exe",
             *      Arguments = command.Replace("\\", "")
             *  }
             * };
             * process.Start();
             * process.WaitForExit();
             * string output = "";
             * if (process.HasExited)
             * {
             *  output = process.StandardOutput.ReadToEnd();
             * }
             *
             * Response.Write(File.Exists("~/homework.zip"));
             * Response.Write(output);*/
        }
        else if (pageType == "ex")
        {
            var service     = new ExperimentServiceImpl();
            var experiments = service.GetExpermentByCourseExperimentId(id);

            var downloadUrLs = experiments.Aggregate("",
                                                     (current, experiment) =>
                                                     current + ("http://" + Request.Url.Host + experiment.Path + Environment.NewLine));
            downloadUrLs = downloadUrLs.Replace("\\", "/");
            Response.Write(downloadUrLs);

            var path = experiments.Select(homework => homework.Path).ToList();


            var buffer = Download(path.ToArray());
            if (buffer != null)
            {
                Response.Clear();
                Response.Charset         = "GB2312";
                Response.ContentEncoding = System.Text.Encoding.UTF8;
                Response.AddHeader("Content-Disposition",
                                   "attachment; filename=" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".zip");
                Response.BinaryWrite(buffer); //输出
                Response.Flush();
                Response.End();
            }
        }
    }