string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
FileUpload1.PostedFile.SaveAs(Server.MapPath("~/ProcessedFiles/" + fileName));
从FileUpload1抓取以保存在服务器上的文件是.xls文件(Excel 97-2003)
我想要的是在服务器上使用.xlsx扩展名(Excel 2007及更高版本)保存它。
答案 0 :(得分: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"));
答案 1 :(得分:0)
您可以检索没有原始扩展名的文件名,然后使用Path.GetFileNameWithoutExtension(String path)
为其添加新的扩展名,如下所示:
String filename = Path.GetFileNameWithoutExtension(FileUpload1.PostedFile.FileName) + ".xlsx";
FileUpload1.PostedFile.SaveAs(Server.MapPath("~/ProcessedFiles/" + filename));
第二个想法,我完全忘记了ChangeExtension()
,正如@Matt建议的那样。你应该使用他的代码。
答案 2 :(得分:0)
您需要使用Path.GetFileNameWithoutExtension方法而不是Path.GetFileName
string fileName = Path.GetFileNameWithoutExtension(FileUpload1.PostedFile.FileName) + "xlsx";
FileUpload1.PostedFile.SaveAs(Server.MapPath("~/ProcessedFiles/" + fileName));