public ActionResult FileDetail(FileView model) { string fileCode = Request["fileCode"].ToString(); WitKeyDu.Core.Models.Files.File file = FileModuleSiteContract.Files.FirstOrDefault(m => m.FileCode == fileCode); SystemUser SysUser = AccountContract.SysUsers.FirstOrDefault(user => user.Id == file.SystemUserID); FileView fileInfo = new FileView { FileCode = file.FileCode, FileIntroduction = file.FileIntroduction, FileName = file.FileName, UserKey = file.SystemUserID, HeadImg = SysUser.HeadImage, UserName = SysUser.UserName, }; ViewBag.fileInfo = fileInfo; List <FileResource> fileResourceInfo = FileResourceSiteContract.FileResources.Where(m => m.FileCode == fileCode).ToList(); List <FileResourceView> fileResourceInfoView = new List <FileResourceView>(); foreach (FileResource fileitem in fileResourceInfo) { FileResourceView fileResource = new FileResourceView { FileCode = fileitem.FileCode, FileSrc = fileitem.FileSrc, FileName = SplitChar(fileitem.FileSrc) }; fileResourceInfoView.Add(fileResource); } return(View(fileResourceInfoView)); }
public void ProcessRequest(HttpContext context) { new CompositionContainer(MvcApplication.catalog).ComposeParts(this); context.Response.ContentType = "text/plain"; string fileCode = context.Request["fileCode"]; //如果进行了分片 if (context.Request.Form.AllKeys.Any(m => m == "chunk")) { //取得chunk和chunks int chunk = Convert.ToInt32(context.Request.Form["chunk"]); int chunks = Convert.ToInt32(context.Request.Form["chunks"]); //根据GUID创建用该GUID命名的临时文件 string path = context.Server.MapPath("~/Content/UploadFile/FileResource/" + context.Request["guid"]); FileStream addFile = new FileStream(path, FileMode.Append, FileAccess.Write); BinaryWriter AddWriter = new BinaryWriter(addFile); //获得上传的分片数据流 HttpPostedFile file = context.Request.Files[0]; Stream stream = file.InputStream; BinaryReader TempReader = new BinaryReader(stream); //将上传的分片追加到临时文件末尾 AddWriter.Write(TempReader.ReadBytes((int)stream.Length)); //关闭BinaryReader文件阅读器 TempReader.Close(); stream.Close(); AddWriter.Close(); addFile.Close(); TempReader.Dispose(); stream.Dispose(); AddWriter.Dispose(); addFile.Dispose(); //如果是最后一个分片,则重命名临时文件为上传的文件名 if (chunk == (chunks - 1)) { //1.保存物理文件 FileInfo fileinfo = new FileInfo(path); fileinfo.MoveTo(context.Server.MapPath("~/Content/UploadFile/FileResource/" + context.Request.Files[0].FileName)); //2.文件和上传者的信息绑定,并且存入数据库 FileResourceView fileResource = new FileResourceView { FileCode = fileCode, FileSrc = "~/Content/UploadFile/FileResource/" + context.Request.Files[0].FileName }; FileResourceSiteContract.ReleaseFileResource(fileResource); } } else//没有分片直接保存 { context.Request.Files[0].SaveAs(context.Server.MapPath("~/Content/UploadFile/FileResource/" + context.Request.Files[0].FileName)); FileResourceView fileResource = new FileResourceView { FileCode = fileCode, FileSrc = "~/Content/UploadFile/FileResource/" + context.Request.Files[0].FileName }; FileResourceSiteContract.ReleaseFileResource(fileResource); } context.Response.Write("ok"); }
public OperationResult ReleaseFileResource(FileResourceView model) { FileResource releaseFileResource = new FileResource { FileSrc = model.FileSrc, FileCode = model.FileCode }; OperationResult result = base.ReleaseFileResource(releaseFileResource); return(result); }