ASP.NET C # FileUpload внутри UpdatePanel с обратной передачей - PullRequest
0 голосов
/ 13 января 2019

В настоящее время я пытаюсь загрузить изображение через FileUpload и сохранить его в базе данных. Моя проблема в том, что когда я нажимаю кнопку загрузки, я всегда получаю System.NullReferenceException при попытке загрузки.

Теперь я знаю, что существуют проблемы с asp-FileUploads внутри UpdatePanel - поэтому я установил кнопку загрузки в качестве PostBackTrigger, которая вызывает полную обратную передачу - но она все еще не работает.

Вот что я получил до сих пор:

<asp:UpdatePanel ID="Update_woundpic" runat="server" UpdateMode="Conditional">
            <Triggers>
                <asp:PostBackTrigger ControlID="woundpic_upload" />
            </Triggers>
            <ContentTemplate>
              <div class="col-md-3">
                  <h3 class="label2">Upload
                    <small class="text-muted">maximal 5MB</small>
                  </h3>
                  <asp:FileUpload ID="uploadWoundImage" runat="server" />
                  <br />
                  <asp:LinkButton ID="woundpic_upload" runat="server" OnClick="btn_Upload_Click" CssClass="btn3d btn btn-default btn-lg"><span aria-hidden="true" class="glyphicon glyphicon-upload"></span> Hochladen</asp:LinkButton>
                  <asp:Label ID="lbl_success" runat="server" Text="Upload erfolgreich!" CssClass="uploadSuccess" Visible="False"></asp:Label>
                  <asp:Label ID="lbl_error" runat="server" Text="Upload nicht erfolgreich!" CssClass="uploadFailure" Visible="False"></asp:Label>
                  <br />
                  <br />
            </div>
  </ContentTemplate>
</asp:UpdatePanel>

И это мой метод загрузки изображения / файла:

 protected void btn_Upload_Click(object sender, EventArgs e)
        {

            byte[] imgByte;

                using(BinaryReader reader = new BinaryReader(uploadWoundImage.PostedFile.InputStream))
                {
                    imgByte = reader.ReadBytes(uploadWoundImage.PostedFile.ContentLength);
                }

            DateTime imageUpload = DateTime.Now;
            string imageFormat = uploadWoundImage.PostedFile.ContentType;
            string imageName = Path.GetFileName(uploadWoundImage.PostedFile.FileName);
            _db.SaveWoundImage(imgByte, imageFormat, imageName, imageUpload);

        }

Теперь, если я нажму на кнопку, строка

using(BinaryReader reader = new BinaryReader(uploadWoundImage.PostedFile.InputStream))

выдает исключение System.NullReferenceException, поэтому я не знаю, почему файл не найден даже при полной обратной передаче.

Спасибо за любую помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...