public async Task <IEnumerable <File> > Upload(uint?id = null) { var files = new List <File>(); var infos = await _accessor.Write(this.Request, this.DataService.GetDirectory(id), args => args.FileName = (DateTime.Now - EPOCH).Days.ToString() + "-" + Zongsoft.Common.Randomizer.GenerateString()); foreach (var info in infos) { if (info == null || !info.IsFile) { continue; } object name = null; if (info.HasProperties && !info.Properties.TryGetValue("FileName", out name)) { info.Properties.TryGetValue("DispositionName", out name); } if (string.IsNullOrWhiteSpace(name as string)) { name = info.Name; } var attachment = Zongsoft.Data.Model.Build <File>(file => { file.FolderId = id.HasValue ? id.Value : 0; file.Name = info.Name; file.Path = info.Path.Url; file.Type = info.Type; file.Size = (uint)Math.Max(0, info.Size); }); if (this.DataService.Insert(attachment) > 0) { files.Add(attachment); } else { await _accessor.Delete(info.Path.FullPath); } } return(files); }
/// <summary> /// 上传一个文件或多个文件。 /// </summary> /// <param name="directory">指定上传文件的目录路径(绝对路径以/斜杠打头)。</param> /// <returns>返回上传成功的<see cref="Zongsoft.IO.FileInfo"/>文件描述信息实体对象集。</returns> public Task <IEnumerable <Zongsoft.IO.FileInfo> > Post(string directory = null) { return(_accessor.Write(this.Request, directory)); }