0

AJAXコントロールツールキットのasyncFileUploadコントロールを使用しています。コードビハインドで型キャストしてアクセスすることはできますが、ファイルを取得していないようです。これは、ページにネストされる方法です。

<asp:LoginView ID="LoginView1" runat="server">
    <AnonymousTemplate>
    </AnonymousTemplate>
    <LoggedInTemplate>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:Repeater ID="rpt_items_loggedin" runat="server">
                   <ItemTemplate>
                   </ItemTemplate>
                </asp:Repeater>
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="btn_addwish" EventName="click" />
            </Triggers>
        </asp:UpdatePanel>
        <div class="wenslijst_preview">        
            <div class="fourfifth">
                <table>
                    <tr>
                       <td>
                          <asp:Label ID="lbl_img" runat="server" Text="Upload een afbeelding:" AssociatedControlID="fu_img_upload"></asp:Label>
                       </td>
                       <td>
                          <asp:AsyncFileUpload ID="asfu_img" runat="server" UploaderStyle="Traditional" />
                       </td>
                    </tr>
                </table>
            </div>
            <div class="fifth">
                <asp:ImageButton ID="btn_addwish" runat="server" CssClass="icon_img" 
                                        ImageUrl="images/add.png" onclick="btn_addwish_Click"/>
            </div>
        </div>  
     </LoggedInTemplate>
</asp:LoginView> 

そして、これは私がコードビハインドでそれを処理する方法です。デバッグすると、AsyncFileUploadコントロールがデータを取得しないことがわかります。

protected void btn_addwish_Click(object sender, ImageClickEventArgs e)
{
        AjaxControlToolkit.AsyncFileUpload f = new      AjaxControlToolkit.AsyncFileUpload();
        f = (AjaxControlToolkit.AsyncFileUpload)(this.LoginView1.FindControl("asfu_img"));
        Label l = new Label();
        l = (Label)(this.LoginView1.FindControl("lbl_img_feedback"));
        string filePath = "";
        if (f.HasFile)
        {
            try
            {
                string fileName = DateTime.UtcNow.Ticks + "_" + cId;
                filePath = "images/userimg/" + fileName;
                f.SaveAs(Server.MapPath(filePath));
                l.Text = filePath;
            }
            catch (Exception ex)
            {
                l.Text = "Deze foto kon niet worden geuploaded. " + ex.Message;
            }
        }
    }

より多くのコードや情報を見る必要があるかどうか教えてください!

4

2 に答える 2

1

btn_addwishは、ファイルをアップロードするために使用するボタンのようです。その場合、問題は、f.Hasfileが実行されたときにアップロードが完了していないため、終了しないことです。ファイルがあります。UploadedCompleteイベントまたは何らかの方法で別のコントロールを使用してhasfileをチェックしてみてください。

于 2012-12-15T12:23:45.647 に答える
1

asyncfileuploadコントロールを使用するusercontrolが、たとえばResponse.Redirect( "pageWithUploadControl")を介して非同期にロードされないようにしてください。

FileUploadCompleteイベントを処理し、AsyncFileUploadStateがSuccessであるかどうかを確認しましたか?

また、フォームのenctypeを変更してみてください。

<form id="form1" enctype="multipart/form-data" runat="server">
于 2012-12-15T13:25:34.740 に答える