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;
 | |
|         }
 | |
|     }
 | |
| }
 |