为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

C#.图片上传处理

2011-04-16 20页 doc 660KB 29阅读

用户头像

is_483718

暂无简介

举报
C#.图片上传处理通用权限管理系统组件源码里,有职员管理的功能,实现了直接可以把照片拖拽过来的功能,用起来会很方便。 管理软件能支持拖拽功能,会好用很多,用户体验也会改善很多。想做好一个组件需要把放放面面都彻底做好才可以。   想要控件支持拖拽,需要设置 AllowDrop 属性。   还需要写下面的2个事件。   参考代码如下,有需要的可以参考一下,把有需要的代码参考一下就可以了。   代码 //----------------------------------------------------------- // All Rights ...
C#.图片上传处理
通用权限管理系统组件源码里,有职员管理的功能,实现了直接可以把照片拖拽过来的功能,用起来会很方便。 管理软件能支持拖拽功能,会好用很多,用户体验也会改善很多。想做好一个组件需要把放放面面都彻底做好才可以。   想要控件支持拖拽,需要设置 AllowDrop 属性。   还需要写下面的2个事件。   参考代码如下,有需要的可以参考一下,把有需要的代码参考一下就可以了。   代码 //----------------------------------------------------------- // All Rights Reserved , Copyright (C) 2010 ,Jirisoft , Ltd . //----------------------------------------------------------- using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Text; using System.Windows.Forms; using System.IO; namespace DotNet.WinForm.File {     using DotNet.Model;     using DotNet.Utilities;     using DotNet.Service;     ///      /// UCPicture     /// 照片显示控件     ///      /// 修改纪录     ///     ///        2010.12.08 版本:2.0 JiRiGaLa 更新员工更新照片的错误。     ///        2008.04.29 版本:1.0 JiRiGaLa 创建。     ///             /// 版本:2.0     ///     ///      ///        JiRiGaLa     ///        2010.12.08     ///       ///      public partial class UCPicture : UserControl     {         public UCPicture()         {             InitializeComponent();         }         private BaseUserInfo userInfo = new BaseUserInfo();         ///          /// 当前操作员信息         ///          public BaseUserInfo UserInfo         {             get             {                 userInfo = new BaseUserInfo();                 userInfo.GetUserInfo();                 return userInfo;             }             set             {                 userInfo = value;             }         }         ///          /// 保存到数据库         ///          public bool FromDatabase = true;         private string fileId = string.Empty;         public string FileId         {             get             {                 return this.fileId;             }             set             {                 this.fileId = value;                 this.ShowPicture();             }         }         private string folderId = string.Empty;         public string FolderID         {             get             {                 return this.folderId;             }             set             {                 this.folderId = value;             }         }                  private void UCPicture_Load(object sender, EventArgs e)         {             // 设置按钮状态             // this.SetControlState();         }         private void UCPicture_DragOver(object sender, DragEventArgs e)         {             if (e.Data.GetDataPresent(DataFormats.FileDrop))             {                 e.Effect = DragDropEffects.Move;             }         }         private void UCPicture_DragDrop(object sender, DragEventArgs e)         {             if (e.Data.GetDataPresent(DataFormats.FileDrop))             {                 string[] file = (string[])e.Data.GetData(DataFormats.FileDrop);                 for (int i = 0; i <= file.Length - 1; i++)                 {                     if (System.IO.File.Exists(file[i]))                     {                         this.fileId = string.Empty;                         // 设置显示的图片                         this.pic.ImageLocation = file[i];                         // 设置按钮状态                         this.SetControlState();                         break;                     }                 }             }         }         ///          /// 显示图片         ///          public void ShowPicture()         {             if (!String.IsNullOrEmpty(this.FileId))             {                 // 显示图片                 this.ShowPicture(this.FileId);             }             else             {                 // 清除图片                 this.ClearPicture();             }         }         ///          /// 显示图片         ///          /// 主键         private void ShowPicture(string id)         {             if (!this.FromDatabase)             {                 this.pic.ImageLocation = BaseSystemInfo.StartupPath + id;             }             else             {                 byte[] fileContent = null;                 fileContent = this.Download(id);                 if (fileContent != null)                 {                     // this.pic.Image = this.ByteToImage(fileContent);                     MemoryStream memoryStream = new MemoryStream(fileContent);                     Bitmap bitmap = new Bitmap(memoryStream);                     this.pic.Image = bitmap;                 }                 else                 {                     this.FileId = string.Empty;                     this.ClearPicture();                 }             }             // 设置按钮状态             this.SetControlState();         }         ///          /// 从数据库中读取文件         ///          /// 文件主键         /// 文件         public byte[] Download(string id)         {             return ServiceManager.Instance.FileService.Download(UserInfo, id);             // OleDbHelper dbHelper = new SqlHelper();             // dbHelper.Open();             // byte[] fileContent = null;             // string sqlQuery = " SELECT " + BaseFileTable.FieldFileContent             //                + "   FROM " + BaseFileTable.TableName             //                + "  WHERE " + BaseFileTable.FieldId + " = '" + Id + "'";             // OleDbDataReader dataReader = (OleDbDataReader)dbHelper.ExecuteReader(sqlQuery);             // if (dataReader.Read())             // {             //    fileContent = (byte[])dataReader[BaseFileTable.FieldFileContent];             // }             // dbHelper.Close();             // return fileContent;         }         public string Upload(string folderId, string categoryId)         {             this.FolderID = folderId;             string returnValue = string.Empty;             if (!String.IsNullOrEmpty(this.pic.ImageLocation))             {                 // 保存到数据库                 if (this.FromDatabase)                 {                     if (String.IsNullOrEmpty(this.FileId))                     {                         returnValue = ServiceManager.Instance.FileService.Upload(UserInfo, folderId, Path.GetFileName(this.pic.ImageLocation), FileUtil.GetFile(this.pic.ImageLocation), true);                     }                     else                     {                         string statusCode = string.Empty;                         string statusMessage = string.Empty;                         ServiceManager.Instance.FileService.UpdateFile(UserInfo, this.FileId, Path.GetFileName(this.pic.ImageLocation), FileUtil.GetFile(this.pic.ImageLocation), out statusCode, out statusMessage);                         returnValue = this.FileId;                     }                 }                 else                 {                     // 复制文件到指定的里                     if (!this.pic.ImageLocation.Equals(BaseSystemInfo.StartupPath + this.FileId))                     {                         string destDirectory = BaseSystemInfo.StartupPath + "\\UploadFiles" + "\\" + folderId + "\\" + categoryId;                         System.IO.Directory.CreateDirectory(destDirectory);                         string destFileName = destDirectory + "\\" + Path.GetFileName(this.pic.ImageLocation);                         System.IO.File.Copy(this.pic.ImageLocation, destFileName);                         returnValue = "\\UploadFiles" + "\\" + folderId + "\\" + categoryId + "\\" + Path.GetFileName(this.pic.ImageLocation);                     }                 }                 // OleDbHelper dbHelper = new SqlHelper();                 // dbHelper.Open();                 // string sequence = BaseSequenceManager.Instance.GetSequence(DbHelper, BaseFileTable.TableName);                 // OleDbSQLBuilder sqlBuilder = new OleDbSQLBuilder();                 // sqlBuilder.BeginInsert(DbHelper, BaseFileTable.TableName);                 // sqlBuilder.SetValue(BaseFileTable.FieldId, sequence);                 // sqlBuilder.SetValue(BaseFileTable.FieldFolderId, folderId);                 // sqlBuilder.SetValue(BaseFileTable.FieldFileName, Path.GetFileName(this.pic.ImageLocation));                 // // byte[] File = this.ImageToByte(this.pic.Image);                 // byte[] File = this.GetFile(this.pic.ImageLocation);                 // sqlBuilder.SetValue(BaseFileTable.FieldFileContent, File);                 // sqlBuilder.SetValue(BaseFileTable.FieldFileSize, File.Length);                 // sqlBuilder.SetValue(BaseFileTable.FieldCreateUserId, UserInfo.Id);                 // sqlBuilder.SetDBNow(BaseFileTable.FieldCreateDate);                 // sqlBuilder.EndInsert();                 // dbHelper.Close();                 // returnValue = sequence;             }             return returnValue;         }         private void SetControlState(bool enabled)         {             this.btnSelect.Enabled  = enabled;             this.btnClear.Enabled   = enabled;             this.btnDelete.Enabled  = enabled;         }         #region private void SetControlState() 设置按钮状态         ///          /// 设置按钮状态         ///          private void SetControlState()         {             this.btnSelect.Enabled = true;             // 是从数据库里面读取出来的             if (!String.IsNullOrEmpty(this.FileId) && (String.IsNullOrEmpty(this.pic.ImageLocation) || !this.FromDatabase))             {                 this.btnDelete.Enabled = true;             }             else             {                 this.btnDelete.Enabled = false;             }             // 清除按钮             this.btnClear.Enabled = false;             if (!String.IsNullOrEmpty(this.pic.ImageLocation))             {                 if (this.FromDatabase)                 {                     this.btnClear.Enabled = true;                     this.btnDelete.Enabled = false;                 }                 else                 {                     if (!this.pic.ImageLocation.Equals(BaseSystemInfo.StartupPath + this.FileId))                     {                         this.btnClear.Enabled = true;                         this.btnDelete.Enabled = false;                     }                 }             }         }         #endregion         private void pic_DoubleClick(object sender, EventArgs e)         {             if (this.pic.Image != null)             {                 FrmPicture frmPicture = new FrmPicture(this.FileId);                 frmPicture.SetImage(this.pic.Image);                 frmPicture.Show();             }         }                 private void btnSelect_Click(object sender, EventArgs e)         {             OpenFileDialog openFileDialog = new OpenFileDialog();             // OpenFileDialog.InitialDirectory = Application.StartupPath;             openFileDialog.Filter = "位图文件(*.bmp)|*.bmp|JPEG(*.JPG;*.JPEG;*.JPE;*.JFIF)|*.JPG;*.JPEG;*.JPE;*.JFIF|GIF(*.GIF)|*.GIF|TIFF(*.TIF;*.TIIF)|*.TIF;*.TIIF|PNG(*.PNG)|*.PNG|ICO(*.ICO)|*.ICO|所有图片文件|(*.bmp;*.JPG;*.JPEG;*.JPE;*.JFIF;*.GIF;*.TIF;*.TIIF;*.PNG;*.ICO)|所有文件|*.*";             openFileDialog.FilterIndex = 7;             openFileDialog.RestoreDirectory = true;             openFileDialog.Title = "打开图片文件";             if (openFileDialog.ShowDialog() == DialogResult.OK)             {                 this.fileId = string.Empty;                 this.SetControlState(false);                 this.pic.ImageLocation = openFileDialog.FileName;                 // 设置按钮状态                 this.SetControlState();             }         }         ///          /// 清除图片         ///          private void ClearPicture()         {             this.pic.ImageLocation = string.Empty;             this.pic.Image = null;         }         private void btnClear_Click(object sender, EventArgs e)         {             this.ClearPicture();             this.ShowPicture();             // 设置按钮状态             this.SetControlState();         }         ///          /// 删除文件         ///          /// 主键         /// 影响的行数         public int DeleteFile(string id)         {             int returnValue = 0;             if (this.FromDatabase)             {                 // 从数据库服务器删除文件                 returnValue = ServiceManager.Instance.FileService.Delete(UserInfo, id);             }             else             {                 // 清除图片                 this.ClearPicture();                 // 删除文件                 System.IO.File.Delete(BaseSystemInfo.StartupPath + this.FileId);             }             return returnValue;         }         private void btnDelete_Click(object sender, EventArgs e)         {             if (MessageBox.Show(AppMessage.MSG0207, AppMessage.MSG0000, MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)             {                 this.SetControlState(false);                 this.DeleteFile(this.FileId);                 this.FileId = string.Empty;                 this.ShowPicture();                 // 设置按钮状态                 this.SetControlState();             }         }         } }         将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。
/
本文档为【C#.图片上传处理】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索