0

jQuery からサーバーサイド メソッドを呼び出そうとしています。Firefox では問題なく動作しますが、IE8 および IE9 では動作しません。

以下のコードサンプルを見つけてください:

 <div>  
    <asp:FileUpload ID="flAppIcon" runat="server" onchange="GetFileSize();"/>
    <asp:HiddenField ID="_hdnAppIcon" runat="server" Value="0" />
</div>

<script type="text/javascript" language="javascript">
    function GetFileSize() {
        var PageURL = '<%= ResolveUrl("~/WebForm16.aspx") %>'
        var test = ($('#<%=flAppIcon.ClientID%>').val()).toString();
        $("#<%=_hdnAppIcon.ClientID%>").val(test);
        alert($("#<%=_hdnAppIcon.ClientID%>").val());
        $.ajax({
            type: "POST",
            url: PageURL + '/GetFileSizeDetails',
            data: '{file: "' + $("#<%=_hdnAppIcon.ClientID%>")[0].value + '"}',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: OnSuccess,
            failure: function (response) {
                alert(response.d);
            }
        });
    }

    function OnSuccess(response) {
        alert(response.d);
    }
</script> 

[System.Web.Services.WebMethod]
public static string GetFileSizeDetails(string file)
{
    return "100";
}

この問題の根本原因を知るために誰か助けてもらえますか?

よろしくお願いします、サントッシュ・クマール・パトロ

4

1 に答える 1

0

$("#<%=_hdnAppIcon.ClientID%>")[0].valueの形式は次のとおりです。WebMethodC:\fakepath\your-file.jpgを介してサーバー側に渡される場合、有効なJSONではありません。

サイズではなくファイルパスを選択しています。関数名に基づいて、ファイルサイズをサーバーに送り返すことを想定しています。

使ってみてください

$("#<%=_hdnAppIcon.ClientID%>")[0].files[0].size

それ以外の

$("#<%=_hdnAppIcon.ClientID%>")[0].value
于 2012-04-26T16:23:36.287 に答える