Enjoyoa-任意文件上传

admin 2024年1月15日15:30:00评论194 views字数 2625阅读8分45秒阅读模式

帮同事看的,顺便记录一下。

寻找路由

Enjoyoa-任意文件上传

反序列化处理出传入的json没啥跟进的,直接看UploadingFileInfo,有啥就可以定义啥

主要跟函数UploadingFileInfo

完整函数如下:

public string StoreFileAdvanced(UploadingFileInfo<string> fileUploadInfo, Stream fileStream)    {      string result = "";      string str = "_temp";      string str2 = string.Format("{0}_{1}_{2}", fileUploadInfo.UploadUserNo, string.Format("{0:yyyyMMddHHmmssffff}", fileUploadInfo.UploadTime), fileUploadInfo.FileName + str);      if (!Directory.Exists(FileUploadHelper.UploadFileFolder))      {        Directory.CreateDirectory(FileUploadHelper.UploadFileFolder);      }      using (FileStream fileStream2 = File.Open(FileUploadHelper.UploadFileFolder + Path.DirectorySeparatorChar.ToString() + str2, FileMode.Append))      {        this.SaveFile(fileStream, fileStream2);        fileStream2.Close();      }      string uploadFileFolder = FileUploadHelper.UploadFileFolder;      string text;      if (fileUploadInfo.IsUseMongdb)      {        text = string.Format("{0}_{1}_{2}", fileUploadInfo.UploadUserNo, string.Format("{0:yyyyMMddHHmmssffff}", fileUploadInfo.UploadTime), fileUploadInfo.FileName);      }      else      {        text = fileUploadInfo.FileName;        if (!Directory.Exists(uploadFileFolder))        {          Directory.CreateDirectory(uploadFileFolder);        }        if (File.Exists(uploadFileFolder + Path.DirectorySeparatorChar.ToString() + text))        {          File.Delete(uploadFileFolder + Path.DirectorySeparatorChar.ToString() + text);        }      }      if (fileUploadInfo.LastChunk)      {        File.Move(FileUploadHelper.UploadFileFolder + Path.DirectorySeparatorChar.ToString() + str2, uploadFileFolder + Path.DirectorySeparatorChar.ToString() + text);        UploadResult uploadResult = new FileUploadHelper().UploadFinished(new UploadFileInfo        {          FileName = fileUploadInfo.FileName,          FilePath = string.Format("{0}{1}{2}", FileUploadHelper.UploadFileFolder, Path.DirectorySeparatorChar, text),          Parameters = fileUploadInfo.ExtendInfo,          UniqueKey = fileUploadInfo.UniqueKey,          UploadMethodName = fileUploadInfo.UploadMethodName,          UserNo = fileUploadInfo.UploadUserNo,          IsUseMongdb = fileUploadInfo.IsUseMongdb,          IsUseCloud = fileUploadInfo.IsUseCloud,          CloudPath = fileUploadInfo.CloudPath,          Size = fileStream.Length        });        result = uploadResult.ID;        if (uploadResult != null && !string.IsNullOrEmpty(uploadResult.sErrInfo))        {          throw new Exception(uploadResult.sErrInfo);        }      }      return result;    }

通过上述代码可以看到需要UploadUserNo、LastChunk、FileName、IsUseMongdb、UploadTime

其中

      if (fileUploadInfo.IsUseMongdb)      {        text = string.Format("{0}_{1}_{2}", fileUploadInfo.UploadUserNo, string.Format("{0:yyyyMMddHHmmssffff}", fileUploadInfo.UploadTime), fileUploadInfo.FileName);      }      else      {        text = fileUploadInfo.FileName;        if (!Directory.Exists(uploadFileFolder))        {          Directory.CreateDirectory(uploadFileFolder);        }        if (File.Exists(uploadFileFolder + Path.DirectorySeparatorChar.ToString() + text))        {          File.Delete(uploadFileFolder + Path.DirectorySeparatorChar.ToString() + text);        }      }

构造对应请求即可实现文件上传

Enjoyoa-任意文件上传

原文始发于微信公众号(安全学习与分享):Enjoyoa-任意文件上传

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月15日15:30:00
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Enjoyoa-任意文件上传https://cn-sec.com/archives/2212602.html

发表评论

匿名网友 填写信息