public int AddFile(OceanFile file) { using (var db = new OsConn()) { var result = db.Insert(file); return(result); } }
public async Task <DataResult> HandleUpload(HttpRequestMessage request, string version) { if (!request.Content.IsMimeMultipartContent("form-data")) { return new DataResult { Code = 500, FileIds = new List <long>(), Message = "Not MimeMultipart Content" } } ; try { var curFileDir = UploadPath + "\\" + UploadPathDir; if (!Directory.Exists(UploadPath)) { Directory.CreateDirectory(UploadPath); } if (!Directory.Exists(curFileDir)) { Directory.CreateDirectory(curFileDir); } // 设置上传目录 var provider = new MultipartFormDataStreamProvider(UploadPath); // 接收数据,并保存文件 await request.Content.ReadAsMultipartAsync(provider); var srcIp = GetClientIp(); var fileIds = new List <long>(); foreach (var fileData in provider.FileData) { if (string.IsNullOrEmpty(fileData.Headers.ContentDisposition.FileName)) { return new DataResult { Code = 500, FileIds = new List <long>(), Message = "This request is not properly formatted" } } ; var fileName = fileData.Headers.ContentDisposition.FileName; if (fileName.StartsWith("\"") && fileName.EndsWith("\"")) { fileName = fileName.Trim('"'); } if (fileName.Contains(@"/") || fileName.Contains(@"\")) { fileName = Path.GetFileName(fileName); } var fileOriginName = fileData.Headers.ContentDisposition.FileName; fileOriginName = fileOriginName.Trim('\"'); var fileContentType = fileData.Headers.ContentType.MediaType; version = version.Replace("_", "."); var cate = HttpContext.Current.Request.QueryString["cate"]; cate = string.IsNullOrWhiteSpace(cate) ? "" : cate; var fileinfo = new FileInfo(fileData.LocalFileName); var fileSize = fileinfo.Length; var ext = Path.GetExtension(fileName); var curFileDirExt = curFileDir + "\\" + ext; if (!Directory.Exists(curFileDirExt)) { Directory.CreateDirectory(curFileDirExt); } fileName = Guid.NewGuid().ToString("N") + ext; File.Move(fileData.LocalFileName, Path.Combine(curFileDirExt, fileName)); var entity = new OceanFile { FileName = fileName, Ext = ext, FilePath = curFileDirExt, FileSize = fileSize, FileType = cate, OriginName = fileOriginName, ContentType = fileContentType, SrcIp = srcIp, FileKey = "", Version = version, AddTime = DateTime.Now }; var id = data.AddFile(entity); fileIds.Add(id); } return(new DataResult { Code = 200, FileIds = fileIds, Message = "" }); } catch (Exception ex) { return(new DataResult { Code = 500, FileIds = new List <long>(), Message = ex.Message }); } }