C#WinForm写一个附件上传框,实现功能: 实现附件的上传,查看和删除. 上传附件类型: 图片, office文件,PDF,TXT档及其它.
时间: 2023-12-14 22:39:52 浏览: 81
实现一个附件上传框需要以下几个步骤:
1. 设计 WinForm 界面,包括上传、查看和删除按钮。
2. 编写上传代码,可以使用 OpenFileDialog 控件选择文件,然后将文件上传到指定的文件夹。在上传文件的时候需要判断文件类型是否符合要求。
3. 编写查看代码,可以使用 ListView 控件展示上传的文件列表,并可以通过双击文件名打开文件进行查看。
4. 编写删除代码,用户可以通过选择文件并点击删除按钮将文件从上传文件夹中删除。
下面是具体实现的代码,你可以参考一下:
1. 设计 WinForm 界面
在窗体上拖放一个 Button 控件,设置 Text 属性为“上传文件”,再拖放一个 ListView 控件,设置 Dock 属性为“Fill”。在 ListView 控件中添加三列“文件名”、“大小”、“上传日期”。
2. 编写上传代码
使用 OpenFileDialog 控件选择文件,然后将文件上传到指定的文件夹。在上传文件的时候需要判断文件类型是否符合要求。
```csharp
private void btnUpload_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Multiselect = true;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
foreach (string fileName in openFileDialog.FileNames)
{
// 判断上传文件类型是否符合要求
string extension = Path.GetExtension(fileName).ToLower();
if (extension != ".jpg" && extension != ".png" && extension != ".bmp" && extension != ".gif" &&
extension != ".doc" && extension != ".docx" && extension != ".xls" && extension != ".xlsx" &&
extension != ".pdf" && extension != ".txt")
{
MessageBox.Show("不支持上传此类型的文件!");
return;
}
// 上传文件
string destFolder = @"D:\UploadFiles\";
string destFileName = Guid.NewGuid().ToString() + extension;
string destFilePath = Path.Combine(destFolder, destFileName);
File.Copy(fileName, destFilePath);
// 添加到 ListView 控件中
ListViewItem item = new ListViewItem(Path.GetFileName(fileName));
item.SubItems.Add(new FileInfo(fileName).Length.ToString());
item.SubItems.Add(DateTime.Now.ToString());
listViewFiles.Items.Add(item);
}
}
}
```
3. 编写查看代码
使用 ListView 控件展示上传的文件列表,并可以通过双击文件名打开文件进行查看。
```csharp
private void listViewFiles_DoubleClick(object sender, EventArgs e)
{
if (listViewFiles.SelectedItems.Count > 0)
{
string fileName = listViewFiles.SelectedItems[0].Text;
string filePath = Path.Combine(@"D:\UploadFiles\", fileName);
Process.Start(filePath);
}
}
```
4. 编写删除代码
用户可以通过选择文件并点击删除按钮将文件从上传文件夹中删除。
```csharp
private void btnDelete_Click(object sender, EventArgs e)
{
if (listViewFiles.SelectedItems.Count > 0)
{
DialogResult result = MessageBox.Show("确定要删除选中的文件吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
string fileName = listViewFiles.SelectedItems[0].Text;
string filePath = Path.Combine(@"D:\UploadFiles\", fileName);
File.Delete(filePath);
listViewFiles.SelectedItems[0].Remove();
}
}
}
```
这样你就可以实现一个简单的附件上传框了。
阅读全文