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

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

我想要的是在服务器上使用 .xlsx 扩展名(Excel 2007 及更高版本)保存它。

4

3 回答 3

2

采用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"));
于 2013-03-06T13:34:44.747 回答
0

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

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

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

于 2013-03-06T13:31:26.640 回答
0

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

string fileName = Path.GetFileNameWithoutExtension(FileUpload1.PostedFile.FileName) + "xlsx";
FileUpload1.PostedFile.SaveAs(Server.MapPath("~/ProcessedFiles/" + fileName));
于 2013-03-06T13:35:57.133 回答