C#代码:实现功能: 实现附件的上传,查看和删除. 上传附件类型: 图片, office文件,PDF,TXT档及其它.
时间: 2023-12-14 15:38:36 浏览: 175
以下是一个简单的 C# 代码示例,用于实现附件的上传、查看和删除功能。代码使用 ASP.NET MVC 框架和文件系统来处理附件的存储和访问。
```csharp
// 上传附件的控制器
public class AttachmentController : Controller
{
// 上传附件的视图
public ActionResult Upload()
{
return View();
}
// 处理上传附件的 POST 请求
[HttpPost]
public ActionResult Upload(HttpPostedFileBase file)
{
// 检查是否选择了文件
if (file != null && file.ContentLength > 0)
{
// 获取文件名和扩展名
var fileName = Path.GetFileName(file.FileName);
var fileExtension = Path.GetExtension(fileName);
// 检查文件类型是否被允许
var allowedExtensions = new[] { ".jpg", ".jpeg", ".png", ".gif", ".bmp", ".doc", ".docx", ".pdf", ".txt" };
if (!allowedExtensions.Contains(fileExtension.ToLower()))
{
return Content("Invalid file type.");
}
// 生成唯一的文件名
var uniqueFileName = Guid.NewGuid().ToString() + fileExtension;
// 保存文件到服务器
var savePath = Path.Combine(Server.MapPath("~/Attachments"), uniqueFileName);
file.SaveAs(savePath);
// 返回成功上传的消息
return Content("File uploaded successfully.");
}
else
{
return Content("No file selected.");
}
}
// 查看附件的控制器
public ActionResult View(string fileName)
{
// 检查文件名是否为空
if (string.IsNullOrEmpty(fileName))
{
return Content("Invalid file name.");
}
// 获取文件路径
var filePath = Path.Combine(Server.MapPath("~/Attachments"), fileName);
// 检查文件是否存在
if (!System.IO.File.Exists(filePath))
{
return Content("File not found.");
}
// 返回文件内容
return File(filePath, MimeMapping.GetMimeMapping(fileName), fileName);
}
// 删除附件的控制器
public ActionResult Delete(string fileName)
{
// 检查文件名是否为空
if (string.IsNullOrEmpty(fileName))
{
return Content("Invalid file name.");
}
// 获取文件路径
var filePath = Path.Combine(Server.MapPath("~/Attachments"), fileName);
// 检查文件是否存在
if (!System.IO.File.Exists(filePath))
{
return Content("File not found.");
}
// 删除文件
System.IO.File.Delete(filePath);
// 返回删除成功的消息
return Content("File deleted successfully.");
}
}
```
在上面的代码中,`Upload` 方法用于显示上传附件的视图,`[HttpPost] Upload` 方法用于处理上传附件的 POST 请求。`View` 方法用于查看附件,`Delete` 方法用于删除附件。
注意,在这个示例中,附件存储在服务器文件系统中的 `~/Attachments` 目录下。你需要确保在服务器上创建了这个目录,并且确保 IIS 用户有权限读写该目录。
阅读全文