private UploadFilesResult UploadResult(string name, long size, string path) { string fileType = MimeMapping.GetMimeMapping(name); var result = new UploadFilesResult() { name = name, size = size, type = fileType, path = path, //Url = urlBase + name, thumbnailUrl = GetThumbUrl(fileType, name), }; return(result); }
/// <summary> /// 整个文件上传并保存 /// </summary> /// <param name="requestContext"></param> /// <param name="statuses"></param> private UploadFilesResult UploadWholeFile(HttpPostedFileBase file) { var result = new UploadFilesResult(); string fileName = file.FileName.Length > 14 ? file.FileName.Substring(file.FileName.Length - 14) : file.FileName; string fullPath = GetStorageFullName(fileName); file.SaveAs(fullPath); //Create thumb if (imgExtansions.Contains(Utility.GetFileSuffix(fileName).ToLower())) { var thumbFile = GetStorageFullName(fileName, true); using (Image tempimg = Image.FromFile(fullPath)) { Bitmap originalImage = new Bitmap(tempimg, ThumbWidth, ThumbHeight); originalImage.Save(thumbFile); } } result = UploadResult(fileName, file.ContentLength, fullPath); return(result); }
/// <summary> /// 单点续传 /// </summary> /// <param name="fileName"></param> /// <param name="requestContext"></param> /// <returns></returns> private UploadFilesResult UploadPartialFile(string fileName, HttpContextBase requestContext) { var result = new UploadFilesResult(); var request = requestContext.Request; if (request.Files.Count != 1) { throw new HttpRequestValidationException("试图上传分块包含每个请求的多个片段文件"); } var file = request.Files[0]; var inputStream = file.InputStream; var fullName = GetStorageFullName(fileName); var thumbfullName = GetStorageFullName(fileName, true); ImageHelper imgHelper = new ImageHelper(); var imageBit = ImageHelper.LoadImage(fullName); imgHelper.Save(imageBit, ThumbWidth, ThumbHeight, 10, thumbfullName); using (var fs = new FileStream(fullName, FileMode.Append, FileAccess.Write)) { var buffer = new byte[1024]; var l = inputStream.Read(buffer, 0, 1024); while (l > 0) { fs.Write(buffer, 0, l); l = inputStream.Read(buffer, 0, 1024); } fs.Flush(); fs.Close(); } result = UploadResult(file.FileName, file.ContentLength, file.FileName); return(result); }