コード例 #1
0
        public File <int, int> Add(IFolder parent, Stream body, string fileName, bool ensureUniqueName)
        {
            var callLog = Log.Call <File <int, int> >($"..., ..., {fileName}, {ensureUniqueName}");

            if (ensureUniqueName)
            {
                fileName = FindUniqueFileName(parent, fileName);
            }
            var fullContentPath = Path.Combine(_serverPaths.FullContentPath(AdamContext.Site.ContentPath), parent.Path);

            Directory.CreateDirectory(fullContentPath);
            var filePath = Path.Combine(fullContentPath, fileName);

            using (var stream = new FileStream(filePath, FileMode.Create))
            {
                body.CopyTo(stream);
            }
            var fileInfo = new FileInfo(filePath);

            // register into oqtane
            var oqtFileData = new File
            {
                Name        = Path.GetFileName(fileName),
                FolderId    = parent.Id,
                Extension   = fileInfo.Extension.ToLowerInvariant().Replace(".", ""),
                Size        = (int)fileInfo.Length,
                ImageHeight = 0,
                ImageWidth  = 0
            };
            var oqtFile = OqtFileRepository.AddFile(oqtFileData);

            return(callLog("ok", GetFile(oqtFile.FileId)));
        }