2

複数の画像ファイルをアップロードするために AjaxFileUpload コントロールを使用しています。私がやっていることは、ファイルをフォルダーに保存してからデータベースに挿入することです。しかし、アップロードエラーが発生します。ファイルはフォルダにアップロードされることも、テーブルに保存されることもありません。

これが私のaspxコードです:

 <div id="sliderinsert" style="position:absolute; padding-bottom:5px; background-color:gray; top: 24px; left: 13px; 
        width: 695px; height: 300px; margin-bottom: 1px; overflow:visible">

            <ajaxToolkit:AjaxFileUpload style="position:absolute; width:695px; overflow:auto;max-height:600px"  MaximumNumberOfFiles="7" AllowedFileTypes="jpg,jpeg,png,gif"  
                id="ajaxUpload1"  OnUploadComplete="ajaxUpload1_UploadComplete" runat="server" Width="633px"/>

            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>

        </div>

ここに私のコードビハインドがあります:

protected void ajaxUpload1_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
    {
         id+=1;
        string filename = Path.GetFileName(e.FileName);
        string filepath = Server.MapPath("~/Images/Gallery/" + filename);
        ajaxUpload1.SaveAs(filepath);

        string Insert = "Insert into slider (slid,slurl) values (@id,@IMAGE_PATH)";
        SqlCommand cmd = new SqlCommand(Insert, con);
        cmd.Parameters.AddWithValue("@IMAGE_PATH", filepath);
        cmd.Parameters.AddWithValue("id", id);
        try
        {
            con.Open();
            cmd.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
        }
        finally
        {
            con.Close();
            cmd.Dispose();
        }    
    }

PageLoad イベントでテーブルの max(id) を取得し、アップロード完了イベントでそれをインクリメントしてから、ファイルをテーブルに挿入します。

誰でも私がここでやっている間違いを教えてください。これから私を助けてください...

4

2 に答える 2