Beispiel #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>");
            }
        }
    }
Beispiel #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            url = Request.Url.AbsoluteUri.Split('/').Last();

            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");
            }

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

            if (PageType == "ex")
            {
                var courseExperiment =
                    (CourseExperiment) new ExperimentServiceImpl().GetCourseExperimentById(id);
                var recoders =
                    new CourseSelectionServiceImpl().GetRecordStudentByCourseId(courseExperiment.CourseId);
                ExInfo.Add("name", courseExperiment.Name);
                ExInfo.Add("deadline", courseExperiment.Deadline.ToString());
                ExInfo.Add("purpose", courseExperiment.Purpose);
                ExInfo.Add("steps", courseExperiment.Steps);
                ExInfo.Add("references", courseExperiment.References);


                foreach (var i in recoders)
                {
                    using (var context = new HaermsEntities())
                    {
                        var queryans = context.Experiment.Where(ex =>
                                                                ex.CourseExperimentId == courseExperiment.CourseExperimentId && i.StudentId == ex.StudentId);
                        var newnode = new Exnode();
                        if (queryans.FirstOrDefault() != null)
                        {
                            newnode.filename = queryans.FirstOrDefault()?.Name;
                            newnode.exid     = queryans.FirstOrDefault()?.ExperimentId.ToString();
                            newnode.mark     = queryans.FirstOrDefault()?.Mark == null
                                ? "0"
                                : queryans.FirstOrDefault()?.Mark.ToString();
                            newnode.path = queryans.FirstOrDefault()?.Path;
                        }
                        else
                        {
                            newnode.filename = null;
                            newnode.exid     = null;
                        }
                        newnode.stuname = context.Student.Find(i.StudentId)?.Name;
                        newnode.stunum  = context.Student.Find(i.StudentId)?.StudentNumber;

                        exlist.Add(newnode);
                    }
                }
            }
            else if (PageType == "ho")
            {
                var courseHomework = new HomeworkServiceImpl().GetCourseHomeworkByCourseId(id);
                var recoders       =
                    new CourseSelectionServiceImpl().GetRecordStudentByCourseId(courseHomework.CourseId);
                HoInfo.Add("name", courseHomework.Name);
                HoInfo.Add("deadline", courseHomework.Deadline.ToString(CultureInfo.InvariantCulture));
                HoInfo.Add("purpose", courseHomework.Content);

                foreach (var i in recoders)
                {
                    using (var context = new HaermsEntities())
                    {
                        var queryans =
                            context.Homework.Where(ho => ho.CourseHomeworkId == id && ho.StudentId == i.StudentId);
                        Honode newnode = new Honode();
                        if (queryans.FirstOrDefault() != null)
                        {
                            newnode.filename = queryans.FirstOrDefault()?.Name;
                            newnode.hoid     = queryans.FirstOrDefault()?.HomeworkId.ToString();
                            newnode.mark     = queryans.FirstOrDefault()?.Mark == null
                                ? "0"
                                : queryans.FirstOrDefault()?.Mark.ToString();
                            newnode.path = queryans.FirstOrDefault()?.Path;
                        }
                        else
                        {
                            newnode.filename = null;
                            newnode.hoid     = null;
                        }
                        newnode.stuname = context.Student.Find(i.StudentId)?.Name;
                        newnode.stunum  = context.Student.Find(i.StudentId)?.StudentNumber;
                        holist.Add(newnode);
                    }
                }
            }
        }
Beispiel #3
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();
            }
        }
    }