почему я получаю нулевую ссылку на объект HttpPostedFile, когда помещаю элемент управления FileUpload в панель обновления - PullRequest
0 голосов
/ 04 июня 2011

Несмотря на то, что я выбираю какой-либо файл с помощью элемента управления загрузкой файлов, контроль все равно никогда не входит в раздел else защищенного void btnUpldRes_Click (отправитель объекта, EventArgs e).Это потому, что я поместил контроль загрузки файлов в панель обновления ???

                                    <br />
                                    <br />
                                    <asp:Button ID="btnUpldRes" runat="server" Font-Bold="True" Font-Names="Arial" 
                                        ForeColor="#0033CC" onclick="btnUpldRes_Click" Text="Upload Resume" 
                                        Width="111px" />
                                </td>
                                <td valign="top">
                                    <asp:FileUpload ID="FileUpload1" runat="server" />
                                </td>
                            </tr>
                        </table>
                    </ContentTemplate>



                </asp:UpdatePanel>

защищенный void btnUpldRes_Click (отправитель объекта, EventArgs e) {

    if (FileUpload1.PostedFile == null)
    {

        LblErrorupload.Visible = true;
    }
    else
    { 

        string connStringUploadResume = ConfigurationManager.ConnectionStrings["myconnstring"].ConnectionString;
        SqlConnection conUploadResume = new SqlConnection(connStringUploadResume);

        string emailAddLogin = User.Identity.Name.ToString();
        string strSqlUploadResume = "UPDATE  gen_profile SET " +
       "resume=@resume where email=@email";
        SqlCommand cmdUploadResume = new SqlCommand(strSqlUploadResume, conUploadResume);

        cmdUploadResume.Parameters.AddWithValue("@email", emailAddLogin);

        HttpPostedFile resume = FileUpload1.PostedFile;
        int resumeSizeInBytes = resume.ContentLength;
        byte[] bufferToReadResume = new byte[resumeSizeInBytes];
        resume.InputStream.Read(bufferToReadResume, 0, resumeSizeInBytes);
        cmdUploadResume.Parameters.AddWithValue("@resume", bufferToReadResume);
        conUploadResume.Open();
        int i=cmdUploadResume.ExecuteNonQuery();
        conUploadResume.Close();
        if (i == 1)
        {
            if (LblErrorupload.Visible == true)
            {
                LblErrorupload.Visible = false;
            }
            LblUploadSuccess.Visible = true;
        }
        else
        {
            LblUploadSuccess.Text = "Resume Upload Attempt was not successful"; 
            LblUploadSuccess.Visible = true; 
        }

   }
  }

1 Ответ

0 голосов
/ 04 июня 2011

Попробуйте новый элемент управления AsyncFileUpload.

Почему это не работает: http://geekswithblogs.net/ranganh/archive/2008/04/01/file-upload-in-updatepanel-asp.net-ajax.aspx

Новая статья: http://geekswithblogs.net/ranganh/archive/2009/10/01/fileupload-in-updatepanel-asp.net-like-gmail.aspx

...