В настоящее время я пытаюсь загрузить изображение через 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, поэтому я не знаю, почему файл не найден даже при полной обратной передаче.
Спасибо за любую помощь!