/// <summary> /// 删除文件 /// </summary> /// <param name="fid"></param> /// <param name="uid"></param> /// <returns></returns> public string DeleteFile(string fid, string uid) { var dal = new UpFileDal(); var model = dal.GetFirst(x => x.UID == fid && x.UserID == uid); if (model == null) { return("数据不存在"); } var md5 = model.FileMD5; if (dal.Delete(model) > 0) { if (!dal.Exist(x => x.FileMD5 == md5)) { QiniuHelper.Delete(md5); } } return("删除失败"); }
public string UploadFileAfterCheckRepeat(FileInfo file, string uid, ref string file_url, ref string file_name, bool DeleteFileAfterUploadToQiniu = true) { try { if (!file.Exists) { throw new Exception("无法在磁盘上找到文件"); } var dal = new UpFileDal(); var dbmodel = new UpFileModel(); dbmodel.UserID = uid; dbmodel.FileName = file.Name; dbmodel.FileExt = file.Extension; dbmodel.FileSize = (int)file.Length; dbmodel.FilePath = file.FullName; dbmodel.CreateTime = DateTime.Now; //获取文件md5值 dbmodel.FileMD5 = SecureHelper.GetFileMD5(dbmodel.FilePath); if (!ValidateHelper.IsPlumpString(dbmodel.FileMD5)) { throw new Exception("获取文件MD5失败"); } //判断文件是否存在于七牛 var qiniu_file = QiniuHelper.FindEntry(dbmodel.FileMD5); bool FindInQiniu = qiniu_file.HasFile(); bool uploadToQiniuByMe = false; if (FindInQiniu) { //直接拿七牛中的文件地址 dbmodel.FileUrl = QiniuHelper.GetUrl(dbmodel.FileMD5); } else { var url = QiniuHelper.Upload(file.FullName, dbmodel.FileMD5); dbmodel.FileUrl = url; //标记文件是我上传到七牛的 uploadToQiniuByMe = true; } //运行到这里,七牛已经有文件了 //判断是否要添加到数据库 var res = AddFile(dbmodel); if (ValidateHelper.IsPlumpString(res)) { //如果是我上传到七牛的并且保存本地数据库失败就删除 if (uploadToQiniuByMe) { QiniuHelper.Delete(dbmodel.FileMD5); } return("保存到数据库失败"); } file_name = dbmodel.FileName; file_url = dbmodel.FileUrl; return(SUCCESS); } catch (Exception e) { throw e; } finally { if (DeleteFileAfterUploadToQiniu) { file.Delete(); } } }