C# 如何上载Excel文件以及带有文件名的新GUID追加?
我试图上传一个excel文件,我想用文件名附加Guid 我用的是C#MVCC# 如何上载Excel文件以及带有文件名的新GUID追加?,c#,asp.net-mvc,C#,Asp.net Mvc,我试图上传一个excel文件,我想用文件名附加Guid 我用的是C#MVC public ActionResult ValidateUploadedFile() { DataExchangeDefinitionViewModel dataExchangeDefinitionVM = new DataExchangeDefinitionViewModel(); DataExchangeDefinition dataExchangeDe
public ActionResult ValidateUploadedFile()
{
DataExchangeDefinitionViewModel dataExchangeDefinitionVM = new DataExchangeDefinitionViewModel();
DataExchangeDefinition dataExchangeDefinitionObj = new DataExchangeDefinition();
// Get all files from Request object
HttpFileCollectionBase files = Request.Files;
HttpPostedFileBase file = files[0];
try
{
if (Request.Files.Count > 0)
{
string fname;
// Checking for Internet Explorer
if (Request.Browser.Browser.ToUpper() == "IE" || Request.Browser.Browser.ToUpper() == "INTERNETEXPLORER")
{
string[] testfiles = file.FileName.Split(new char[] { '\\' });
fname = testfiles[testfiles.Length - 1];
}
else
{
Guid guidObj = Guid.NewGuid();
fname = file.FileName + guidObj.ToString();
}
fname = Path.Combine(Server.MapPath("~/images/Uploads/ImportExcel"), fname);
if (_dataExchangeBusiness.IsExcelFile(fname)==true)
{
file.SaveAs(fname);
return Json(new { Result = "true", Message = "" });
}
else
{
return Json(new { Result = "false", Message = "" });
}
}
}
catch (Exception ex)
{
throw ex;
}
// return Json(new { Result = "OK" ,Message="File validated succesfully"});
return null;
}
实际上,该文件已正确上载。我想用文件名附加Guid。当我用Guid附加文件名时,它会附加在文件扩展名之后
像这样其他费用\u 01.01.2011\u E20.xlsx7ac9dbdb-67bb-434c-8465-6a1f7e5bfc83
我期待这样的结果OtherExpense\u 01.01.2011\u E20\u 7ac9dbdb-67bb-434c-8465-6a1f7e5bfc83.xlsx您可以使用和方法将文件名与GUID连接起来(注意,这两种方法都需要System.IO
命名空间):
您可以使用和方法将文件名与GUID连接起来(请注意,两者都需要System.IO
namespace):
file.FileName
包含文件的全名,包括扩展名。您必须使用文件名字符串。类似于fname=file.FileName.Substring(0,file.FileName.Length-5)+guidObj.ToString()+“.xlsx”
应该可以工作,在正确清理文件扩展名之前,可能必须使用'file.FileName.Length-5'。您还可以为扩展名设置一个变量,这样就可以避免使用神奇的字符串。但是我们如何指定特定的长度呢。文件名长度可能会发生变化。是否有任何函数(如GetExtension(fname))来获取文件名而不使用outextension@dhanildinesanfile.FileName.Length
提供文件名的长度,包括扩展名。-5是取出字符串的最后5个字符。下面是一个小示例,演示了如何执行此操作。file.FileName
包含文件的全名,包括扩展名。您必须使用文件名字符串。类似于fname=file.FileName.Substring(0,file.FileName.Length-5)+guidObj.ToString()+“.xlsx”
应该可以工作,在正确清理文件扩展名之前,可能必须使用'file.FileName.Length-5'。您还可以为扩展名设置一个变量,这样就可以避免使用神奇的字符串。但是我们如何指定特定的长度呢。文件名长度可能会发生变化。是否有任何函数(如GetExtension(fname))来获取文件名而不使用outextension@dhanildinesanfile.FileName.Length
提供文件名的长度,包括扩展名。-5是取出字符串的最后5个字符。这是一个演示如何工作的小例子。让我试试这个。这一个工作。谢谢。让我试试这个。这一个工作。谢谢
Guid guidObj = Guid.NewGuid();
string baseName = Path.GetFileNameWithoutExtension(file.FileName);
string extension = Path.GetExtension(file.FileName);
fname = baseName + guidObj.ToString() + extension;