108 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			108 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System; | |||
|  | using System.Collections.Generic; | |||
|  | using System.Linq; | |||
|  | using System.Text; | |||
|  | using System.Collections; | |||
|  | using System.IO; | |||
|  | using System.Web; | |||
|  | 
 | |||
|  | namespace BLL | |||
|  | { | |||
|  |     public static class FileStructService | |||
|  |     { | |||
|  |         /// <summary> | |||
|  |         /// 获取附件数据流类 | |||
|  |         /// </summary> | |||
|  |         /// <param name="attachUrl">附件路径</param> | |||
|  |         /// <returns></returns> | |||
|  |         public static List<byte[]> GetFileStructByAttachUrl(string attachUrl) | |||
|  |         { | |||
|  |             List<byte[]> fileContext = new List<byte[]>(); | |||
|  |             if (!String.IsNullOrEmpty(attachUrl)) | |||
|  |             { | |||
|  |                 string filePath = string.Empty; | |||
|  |                 string physicalpath = Funs.RootPath; | |||
|  |                     //HttpContext.Current.Request.PhysicalApplicationPath;                 | |||
|  |                 filePath = physicalpath + attachUrl;                | |||
|  |                 if (File.Exists(filePath)) | |||
|  |                 { | |||
|  |                     FileInfo fileInfo = new FileInfo(filePath); | |||
|  |                     Stream stream = fileInfo.OpenRead(); | |||
|  |                     //读取指定大小的文件流内容到uploadFile.Context以便上传 | |||
|  |                     int b; | |||
|  |                     while (stream.Position > -1 && stream.Position < stream.Length) | |||
|  |                     { | |||
|  |                         if (stream.Length - stream.Position >= 20000000) | |||
|  |                         { | |||
|  |                             b = 20000000; | |||
|  |                         } | |||
|  |                         else | |||
|  |                         { | |||
|  |                             b = (int)(stream.Length - stream.Position); | |||
|  |                         } | |||
|  | 
 | |||
|  |                         byte[] filebyte = new byte[b]; | |||
|  |                         stream.Read(filebyte, 0, b); | |||
|  |                         fileContext.Add(filebyte); | |||
|  |                     } | |||
|  |                     stream.Close(); | |||
|  |                 } | |||
|  |             } | |||
|  | 
 | |||
|  |             return fileContext; | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 获取附件数据流类 多附件的情况 | |||
|  |         /// </summary> | |||
|  |         /// <param name="attachUrl">附件路径</param> | |||
|  |         /// <returns></returns> | |||
|  |         public static List<byte[]> GetMoreFileStructByAttachUrl(string attachUrl) | |||
|  |         { | |||
|  |             List<byte[]> fileContext = new List<byte[]>(); | |||
|  |             if (!String.IsNullOrEmpty(attachUrl)) | |||
|  |             { | |||
|  |                 string[] strs = attachUrl.Trim().Split(','); | |||
|  |                 foreach (var item in strs) | |||
|  |                 { | |||
|  |                     string filePath = string.Empty; | |||
|  |                     string physicalpath = Funs.RootPath; | |||
|  |                     //HttpContext.Current.Request.PhysicalApplicationPath;     | |||
|  |                     filePath = physicalpath + item; | |||
|  |                     if (File.Exists(filePath)) | |||
|  |                     { | |||
|  |                         FileInfo fileInfo = new FileInfo(filePath); | |||
|  |                         if (fileInfo != null) | |||
|  |                         { | |||
|  |                             Stream stream = fileInfo.OpenRead(); | |||
|  |                             if (stream != null) | |||
|  |                             { | |||
|  |                                 //读取指定大小的文件流内容到uploadFile.Context以便上传 | |||
|  |                                 int b; | |||
|  |                                 while (stream.Position > -1 && stream.Position < stream.Length) | |||
|  |                                 { | |||
|  |                                     if (stream.Length - stream.Position >= 20000000) | |||
|  |                                     { | |||
|  |                                         b = 20000000; | |||
|  |                                     } | |||
|  |                                     else | |||
|  |                                     { | |||
|  |                                         b = (int)(stream.Length - stream.Position); | |||
|  |                                     } | |||
|  | 
 | |||
|  |                                     byte[] filebyte = new byte[b]; | |||
|  |                                     stream.Read(filebyte, 0, b); | |||
|  |                                     fileContext.Add(filebyte); | |||
|  |                                 } | |||
|  |                             } | |||
|  | 
 | |||
|  |                             stream.Close(); | |||
|  |                         } | |||
|  |                     } | |||
|  |                 } | |||
|  |             } | |||
|  |             return fileContext; | |||
|  |         } | |||
|  |     } | |||
|  | } |