示例#1
0
        private void ImportSiteTemplate(bool isUpload)
        {
            if (isUpload)
            {
                if (!string.IsNullOrEmpty(HifFile.PostedFile?.FileName))
                {
                    var filePath = HifFile.PostedFile.FileName;
                    var sExt     = PathUtils.GetExtension(filePath);
                    if (!StringUtils.EqualsIgnoreCase(sExt, ".zip"))
                    {
                        FailMessage("站点模板压缩包为zip格式,请选择有效的文件上传");
                        return;
                    }
                    try
                    {
                        var directoryName = PathUtils.GetFileNameWithoutExtension(filePath);
                        var directoryPath = PathUtility.GetSiteTemplatesPath(directoryName);
                        if (DirectoryUtils.IsDirectoryExists(directoryPath))
                        {
                            FailMessage($"站点模板导入失败,文件夹{directoryName}已存在");
                            return;
                        }
                        var localFilePath = PathUtility.GetSiteTemplatesPath(directoryName + ".zip");
                        FileUtils.DeleteFileIfExists(localFilePath);

                        HifFile.PostedFile.SaveAs(localFilePath);

                        ZipUtils.ExtractZip(localFilePath, directoryPath);

                        LayerUtils.CloseAndRedirect(Page, PageSiteTemplate.GetRedirectUrl());
                    }
                    catch (Exception ex)
                    {
                        FailMessage(ex, "文件上传失败!");
                    }
                }
            }
            else
            {
                var sExt = PathUtils.GetExtension(TbDownloadUrl.Text);
                if (!StringUtils.EqualsIgnoreCase(sExt, ".zip"))
                {
                    FailMessage("站点模板压缩包为zip格式,请输入有效文件地址");
                    return;
                }

                PageUtils.Redirect(ModalProgressBar.GetRedirectUrlStringWithSiteTemplateDownload(0, TbDownloadUrl.Text));
            }
        }