基于C# winform实现图片流存储到文件
本文所述实例实现将一张图片上传到指定的文件夹,然后在窗体上的PictrueBox控件中显示出来。
具体功能代码如下:
private
void
btnUpload_Click(
object
sender, EventArgs e)
{
//创建一个对话框对象
OpenFileDialog ofd =
new
OpenFileDialog();
//为对话框设置标题
ofd.Title =
"请选择上传的图片"
;
//设置筛选的图片格式
ofd.Filter =
"图片格式|*.jpg"
;
//设置是否允许多选
ofd.Multiselect =
false
;
//如果你点了“确定”按钮
if
(ofd.ShowDialog()== System.Windows.Forms.DialogResult.OK)
{
//获得文件的完整路径(包括名字后后缀)
string
filePath = ofd.FileName;
//将文件路径显示在文本框中
txtImgUrl.Text = filePath;
//找到文件名比如“1.jpg”前面的那个“\”的位置
int
position = filePath.LastIndexOf(
"\\"
);
//从完整路径中截取出来文件名“1.jpg”
string
fileName = filePath.Substring(position+1);
//读取选择的文件,返回一个流
using
(Stream stream = ofd.OpenFile())
{
//创建一个流,用来写入得到的文件流(注意:创建一个名为“Images”的文件夹,如果是用相对路径,必须在这个程序的Degug目录下创建
//如果是绝对路径,放在那里都行,我用的是相对路径)
using
(FileStream fs =
new
FileStream(
@"./Images/"
+ fileName, FileMode.CreateNew))
{
//将得到的文件流复制到写入流中
stream.CopyTo(fs);
//将写入流中的数据写入到文件中
fs.Flush();
}
//PictrueBOx 显示该图片,此时这个图片已经被复制了一份在Images文件夹下,就相当于上传
//至于上传到别的地方你再更改思路就行,这里只是演示过程
pbShow.ImageLocation =
@"./Images/"
+ fileName;
}
}
}