Как загрузить двоичный файл из базы данных на языке Си#
Я пытаюсь загрузить вложение, рабочий процесс кода работает хорошо, но вложение не загружается и никаких ошибок не показывает :/ < / 3
Я отлаживаю код строка за строкой и правильные данные передаются через код но никаких файлов не загружается ;/
Я не мог понять, в чем проблема, пожалуйста, мне срочно нужна помощь T_T
весь код метода загрузки показан ниже V
Что я уже пробовал:
1. Default. aspx
<asp:TemplateField HeaderText="Attachments"> <ItemTemplate> <a id='<%# Eval("ID")%>-attachment' onclick="DownloadStaffAttachment" href="javascript: ShowAttachment( '<%# Eval("ID")%>', '<%# Eval("HasAttachment")%>' )" >Attachment</a> </ItemTemplate>
function ShowAttachment(taskID, HasAttachment) { if (HasAttachment == 'False') { alert('No Attachment found for this Task'); } else { DownloadAttach(taskID); } } function DownloadAttach(ID) { var parameter = '{"ID" : "' + ID + '"}'; var url = window.location.protocol + '//' + window.location.host + '//' + 'staff/dashboard.aspx/DownloadStaffAttachment'; $.ajax({ url: url, data: parameter, dataType: "json", contentType:"application/json", cache: false, context: document.body, type: 'post', success: function (Response) { alert(Response); } }); }
2. Defaultaspx. cs
public static void DownloadStaffAttachment(int ID) { DownloadFile File = new DownloadFile(); WorkerManagement management = new WorkerManagement(); System.Web.HttpResponse Response = System.Web.HttpContext.Current.Response; File = management.DownloadStaffAttachment(ID); Response.Clear(); Response.Buffer = true; Response.Charset = ""; Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.ContentType = File.ContentType; Response.AppendHeader("Content-Disposition", "attachment; filename=" + File.FileName); Response.BinaryWrite(File.FileData); Response.Flush(); Response.End(); }
3.WorkMangement.в CS
public DownloadFile DownloadStaffAttachment(int ID) { try { return _workerDao.DownloadStaffAttachment(ID); } catch (Exception ex) { return null; } }
4. WorkerDoa
public DownloadFile DownloadStaffAttachment(int ID) { DownloadFile file = new DownloadFile(); _dbUtil = new DatabaseUtil(); _dbParameters = new DbParameter[1]; try { DatabaseUtil.SetParameter(_dbUtil, _dbParameters,0, "UserID", ID); DbDataReader drUserDetails = _dbUtil.ExecuteDataReader(SpConstant.SP_GET_FILE_BY_STAFF, CommandType.StoredProcedure, _dbParameters); if (drUserDetails.Read()) { file.FileName = Convert.ToString(drUserDetails["FileName"]); file.ContentType = Convert.ToString(drUserDetails["ContentType"]); file.FileData = (byte[])(drUserDetails["FileData"]); file.FileSize = Convert.ToString(drUserDetails["FileSize"]); } else drUserDetails.Close(); return file; } finally { _dbUtil.closeConnection(); } }