1

WebImage.GetImageFromRequestファイルが存在する場合でも、Myは 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>
4

3 に答える 3

4

代わりにこの代替方法を使用してみてください (いくつかのバグのため):

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;
}
}

ここから

于 2013-05-16T17:31:21.337 に答える
1

これを試して:

image = new WebImage(Request.InputStream);

それ以外の:

image = WebImage.GetImageFromRequest();

ここから

于 2013-05-16T17:39:26.747 に答える