阅读量:4
ASP.NET 本身不提供直接重命名上传文件的功能,但您可以通过以下方法实现文件重命名:
- 首先,从请求中获取上传的文件。
- 然后,使用
System.IO命名空间中的Path和File类来生成新的文件名和路径。 - 接下来,使用
File.Move方法将文件从原始位置移动到新位置。 - 最后,删除原始文件(可选)。
以下是一个简单的示例:
using System;
using System.IO;
using System.Web.Http;
public class UploadController : ApiController
{
private static readonly string UploadPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "uploads");
public async Task Post()
{
if (!Request.Content.IsMimeMultipartContent())
{
return BadRequest("请上传文件");
}
var provider = new MultipartMemoryStreamProvider();
await Request.Content.ReadAsMultipartAsync(provider);
foreach (var file in provider.Contents)
{
if (file.Headers.ContentDisposition.FileName != null)
{
string fileName = Path.GetFileName(file.Headers.ContentDisposition.FileName);
string newFileName = GenerateNewFileName(fileName);
string filePath = Path.Combine(UploadPath, newFileName);
file.ReadAsByteArrayAsync().Result.SaveToDisk(filePath);
// 删除原始文件(可选)
string originalFilePath = file.Headers.ContentDisposition.FileName;
File.Delete(originalFilePath);
}
}
return Ok("文件上传成功");
}
private string GenerateNewFileName(string originalFileName)
{
// 在这里实现您的文件重命名逻辑,例如添加时间戳、随机数等
string extension = Path.GetExtension(originalFileName);
string newFileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + extension;
return newFileName;
}
}
在这个示例中,我们首先检查请求是否为多部分内容,然后使用 MultipartMemoryStreamProvider 读取上传的文件。对于每个文件,我们获取原始文件名,生成新的文件名,然后将文件保存到新的位置。最后,我们删除原始文件(可选)。
以上就是关于“asp.netpost 能进行文件重命名吗”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm