C#文件上傳類,文件流,字節數組等詳細介紹及其代碼參考
using System; using System.IO; using System.Web; using System.Web.UI.WebControls; namespace DotNet.Utilities { /// <summary> /// 文件上傳類 /// </summary> public class FileUp { public FileUp() { } /// <summary> /// 轉換為字節數組 /// </summary> /// <param name="filename">文件名</param> /// <returns>字節數組</returns> public byte[] GetBinaryFile(string filename) { if (File.Exists(filename)) { FileStream Fsm = null; try { Fsm = File.OpenRead(filename); return this.ConvertStreamToByteBuffer(Fsm); } catch { return new byte[0]; } finally { Fsm.Close(); } } else { return new byte[0]; } } /// <summary> /// 流轉化為字節數組 /// </summary> /// <param name="theStream">流</param> /// <returns>字節數組</returns> public byte[] ConvertStreamToByteBuffer(System.IO.Stream theStream) { int bi; MemoryStream tempStream = new System.IO.MemoryStream(); try { while ((bi = theStream.ReadByte()) != -1) { tempStream.WriteByte(((byte)bi)); } return tempStream.ToArray(); } catch { return new byte[0]; } finally { tempStream.Close(); } } /// <summary> /// 上傳文件 /// </summary> /// <param name="PosPhotoUpload">控件</param> /// <param name="saveFileName">保存的文件名</param> /// <param name="imagePath">保存的文件路徑</param> public string FileSc(FileUpload PosPhotoUpload, string saveFileName, string imagePath) { string state = ""; if (PosPhotoUpload.HasFile) { if (PosPhotoUpload.PostedFile.ContentLength / 1024 < 10240) { string MimeType = PosPhotoUpload.PostedFile.ContentType; if (String.Equals(MimeType, "image/gif") || String.Equals(MimeType, "image/pjpeg")) { string extFileString = System.IO.Path.GetExtension(PosPhotoUpload.PostedFile.FileName); PosPhotoUpload.PostedFile.SaveAs(HttpContext.Current.Server.MapPath(imagePath)); } else { state = "上傳文件類型不正確"; } } else { state = "上傳文件不能大於10M"; } } else { state = "沒有上傳文件"; } return state; } /// <summary> /// 上傳文件 /// </summary> /// <param name="binData">字節數組</param> /// <param name="fileName">文件名</param> /// <param name="fileType">文件類型</param> //-------------------調用---------------------- //byte[] by = GetBinaryFile("E:\\Hello.txt"); //this.SaveFile(by,"Hello",".txt"); //--------------------------------------------- public void SaveFile(byte[] binData, string fileName, string fileType) { FileStream fileStream = null; MemoryStream m = new MemoryStream(binData); try { string savePath = HttpContext.Current.Server.MapPath("~/File/"); if (!Directory.Exists(savePath)) { Directory.CreateDirectory(savePath); } string File = savePath + fileName + fileType; fileStream = new FileStream(File, FileMode.Create); m.WriteTo(fileStream); } finally { m.Close(); fileStream.Close(); } } } }