在ASP.NET MVC中上传图片webroot路径

问题描述 投票:0回答:1
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 asp.net-core file-upload upload
1个回答
0
投票

如果您想在编写 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回复

© www.soinside.com 2019 - 2024. All rights reserved.