【问题标题】:WebImage.GetImageFromRequest returns null when file is present当文件存在时,WebImage.GetImageFromRequest 返回 null
【发布时间】:2013-05-11 16:42:54
【问题描述】:

我的WebImage.GetImageFromRequest 返回 null,即使有文件。这怎么可能?

cshtml代码:

@{
    if(IsPost)
    {
        if(Request["upload"] != null)
        {
            image = WebImage.GetImageFromRequest();
            if(image != null)
            {
                // something
            }
        }

        if(Request["btn"] != null)
        {
            // something
        }
    }
}
<form action="" method="post">
    <table>
        <tr>
            <td>
                <p>
                    Upload image:
                </p>
            </td>
            <td>
                <input type="file" name="img" />
                <br/>
                <input type="submit" name="upload" value="Upload" />
            </td>
        </tr>
    </table>
    <input type="submit" name="btn" value="update" />
</form>

【问题讨论】:

    标签: c# html razor input upload


    【解决方案1】:

    尝试使用这种替代方法(因为一些错误):

    public static WebImage GetImageFromRequest() {
    var request = HttpContext.Current.Request;
    
    if (request.Files.Length == 0) {
        return null;
    }
    
    try {
        var postedFile = request.Files[0];
        var image = new WebImage(postedFile.InputStream) {
            FileName = postedFile.FileName
        };
        return image;
    } catch {
        // The user uploaded a file that wasn't an image or an image format that we don't understand
        return null;
    }
    }
    

    来自here

    【讨论】:

    • 当它为空时我如何将请求发送到这个方法?觉得我现在有点太困惑了,你能试着澄清一下我的代码的实现吗?
    【解决方案2】:

    您只需将enctype 属性添加到您的form 标记,如下所示:

    <form action="" method="post" enctype="multipart/form-data">
    

    【讨论】:

    • 经过全面研究,我找到了正确的问题原因,但我没有删除其他答案,因为可能对用户的其他一些问题有用。
    【解决方案3】:

    试试这个:

    image = new WebImage(Request.InputStream);
    

    代替:

    image = WebImage.GetImageFromRequest();
    

    来自here

    【讨论】:

    • 当使用它时,它会从“无法从提供的内容构造图像”这一行返回一个新错误。
    • 这个答案可能不适用于旧版本的 .NET!
    猜你喜欢
    • 2020-09-07
    • 2014-07-09
    • 2022-06-25
    • 2016-09-27
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多