public static string UpdateFile(this IFormFile file, string imgUrl, string envPath, string folderName)
{
string fileName = file.FileName;
if (fileName.Length > 64)
{
fileName = fileName.Substring(fileName.Length - 64);
}
fileName = Guid.NewGuid().ToString() + fileName;
string path = envPath + folderName + fileName;
using (FileStream stream = new FileStream(path, FileMode.Create))
{
file.CopyTo(stream);
}
return fileName;
}
获取图片路径是否正确。
我想知道在 ASP.NET MVC 中写入是正确的,我该如何编写以检查此处写入的类型和长度?
如果您想在编写 ASP.NET MVC 应用程序之前验证上传文件的类型和长度,您可以向现有代码添加一些额外的检查。这是带有类型和长度验证的代码的更新版本:
public static string UpdateFile(this IFormFile file, string imgUrl, string envPath, string folderName)
{
// Check if the file is not null and has some content
if (file == null || file.Length == 0)
{
// Handle the error, return an error message, or throw an exception
throw new ArgumentException("Invalid file");
}
// Check the file type (you can add more file type validations if needed)
string fileExtension = Path.GetExtension(file.FileName).ToLower();
if (!IsAllowedFileType(fileExtension))
{
// Handle the error, return an error message, or throw an exception
throw new ArgumentException("Invalid file type");
}
// Check the file length
if (file.Length > 10485760) // 10 MB (you can adjust this value as needed)
{
// Handle the error, return an error message, or throw an exception
throw new ArgumentException("File is too large");
}
// Rest of the existing code...
// Continue with the existing logic
return fileName;
}
private static bool IsAllowedFileType(string fileExtension)
{
// Add more allowed file types as needed
string[] allowedExtensions = { ".jpg", ".jpeg", ".png", ".gif" };
return allowedExtensions.Contains(fileExtension);
}
在此修改后的代码中:
在继续处理之前,它会检查文件是否不为空并且包含一些内容。 它提取文件扩展名并检查它是否在允许的文件类型列表中。您可以根据您的要求调整 IsAllowedFileType 方法以包含或排除文件类型。 它检查文件长度并确保它不超过指定的限制。在此示例中,限制设置为 10 MB(您可以根据需要调整该值)。 确保根据应用程序的要求自定义允许的文件类型和文件大小限制。此外,您可能希望根据应用程序的需求处理异常或错误。
GPT3.5回复