示例#1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Request.GetUser().Download)
            {
                Response.StatusCode = 401;
                return;
            }
            string path = RouteData.GetRelativePath(), dataPath = FileHelper.GetDataFilePath(path),
                   mime = Request.QueryString["Mime"];

            if (string.IsNullOrWhiteSpace(mime))
            {
                mime = FileHelper.GetDefaultMime(dataPath);
            }
            try
            {
                int timeout;
                if (!int.TryParse(Request.QueryString["Timeout"], out timeout))
                {
                    timeout = 10;
                }
                FileHelper.WaitForReady(dataPath, timeout);
                TransmitFile(FileHelper.GetFilePath(path), mime: mime);
            }
            catch (ThreadAbortException)
            {
            }
        }
示例#2
0
 protected void Page_Init(object sender, EventArgs e)
 {
     if (!(CurrentUser = Request.GetUser()).Browse)
     {
         Response.StatusCode = 401;
         return;
     }
     if (InfoDirectory.Exists)
     {
         Views.SetActiveView(DirectoryView);
         if (IsPostBack)
         {
             return;
         }
         var dirs = InfoDirectory.EnumerateDirectories().ToList();
         DirectoryList.DataSource = dirs;
         DirectoryList.DataBind();
         DirectoryCount = dirs.Count.ToString(CultureInfo.InvariantCulture);
         var files = InfoDirectory.EnumerateFiles().ToList();
         FileList.DataSource = files;
         FileList.DataBind();
         FileCount            = files.Count.ToString(CultureInfo.InvariantCulture);
         ArchiveFilePath.Text = string.IsNullOrWhiteSpace(RelativePath) ? "Files.7z" : (RelativePath + ".7z");
     }
     else if (InfoFile.Exists)
     {
         string dataPath = FileHelper.GetDataFilePath(RelativePath), state = FileHelper.GetFileValue(dataPath, "state");
         Task = GenerateFileTask.Create(RelativePath);
         if (Task == null)
         {
             if (state == TaskType.NoTask)
             {
                 if (Request.IsAjaxRequest())
                 {
                     Response.Redirect(Request.RawUrl, true);                          // processing is finished
                 }
                 Views.SetActiveView(FileView);
                 Mime = FileHelper.GetDefaultMime(dataPath);
                 RefreshFile();
             }
             else
             {
                 Views.SetActiveView(GeneralTaskProcessingView);
             }
         }
         else if (state == TaskType.UploadTask)
         {
             Views.SetActiveView(FileUploadingView);
         }
         else
         {
             Viewer.SetTask(Task);
             Views.SetActiveView(FileProcessingView);
         }
     }
     else
     {
         Views.SetActiveView(GoneView);
         Response.StatusCode = 404;
     }
 }