如何在FileUpload中将所选文件保存到服务器时更改文件扩展名

本文关键字:文件 保存 服务器 扩展名 FileUpload | 更新日期: 2023-09-27 18:02:37

string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
FileUpload1.PostedFile.SaveAs(Server.MapPath("~/ProcessedFiles/" + fileName));

我从FileUpload1抓取的文件保存在服务器上是一个。xls文件(Excel 97-2003)

我想要的是保存它与。xlsx扩展名(Excel 2007及以上)在服务器上。

如何在FileUpload中将所选文件保存到服务器时更改文件扩展名

使用Path.ChangeExtension

string path = "C:''SomePath''Somefile.xls";
string newPath = Path.ChangeExtension(path, ".xlsx");

在您的情况下,可能是这样的(未测试):

string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
fileName = Server.MapPath(Path.Combine("~/ProcessedFiles/", fileName));
FileUpload1.PostedFile.SaveAs(Path.ChangeExtension(fileName, ".xlsx"));

您需要使用Path。GetFileNameWithoutExtension方法而不是Path.GetFileName

string fileName = Path.GetFileNameWithoutExtension(FileUpload1.PostedFile.FileName) + "xlsx";
FileUpload1.PostedFile.SaveAs(Server.MapPath("~/ProcessedFiles/" + fileName));

您可以检索没有其原始扩展名的文件名,然后通过使用Path.GetFileNameWithoutExtension(String path)向其添加新的扩展名,如下所示:

String filename = Path.GetFileNameWithoutExtension(FileUpload1.PostedFile.FileName) + ".xlsx";
FileUpload1.PostedFile.SaveAs(Server.MapPath("~/ProcessedFiles/" + filename));

转念一想,我完全忘记了ChangeExtension(),正如@Matt所建议的。你应该使用他的代码