0
我有以下代碼(我仍在開發它),它將文件成功上傳到所需的路徑。如何在使用IFormFile上傳時更改文件名
private async Task AddImage(IFormFile image, string filePath)
{
List<string> PermittedFileTypes = new List<string> {
"image/jpeg",
"image/png",
};
if (PermittedFileTypes.Contains(image.ContentType)) {
// HERE I WILL CHECK NAME AND CHANGE IF IT ALREADY EXSISTS
using (var stream = new FileStream(Path.Combine(filePath, image.FileName), FileMode.Create))
{
await image.CopyToAsync(stream);
}
}
}
我來臨的問題,其中文件試圖上傳具有相同的名稱(顯然是錯誤),但一個不同的文件。所以我想檢查一下文件是否存在,如果它確實改變了文件的名字,可能會在末尾附加一個「_#」,然後再以新名稱上傳文件。問題是IFormFile.FileName是唯一的爲了得到,我無法設置文件名
在網上看我看到人們建議將文件複製到一個新的名稱,但由於文件無法上傳我不能這樣做。幫助表示讚賞!
相反的Path.Combine(文件路徑,image.FileName)只需使用Path.Combine(文件路徑,「TheNameYouLikeToHave.foo 「) –
用'Guid'作爲文件名保存圖像,並在數據庫中保存虛擬路徑和'image.FileName'(作爲'DisplayName'屬性)。這樣你的文件名就是唯一的(不需要檢查),你可以把文件的名字反饋給用戶) –