Beispiel #1
0
        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));
        }
Beispiel #2
0
        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);
        }