Раньше разработчик поставил этот код с помощью метки, и он был превращен в гиперссылку во время выполнения.Почему гиперссылка не открывает файл?
<asp:Label ID="lbl_Attachment" runat="server">
</asp:Label>
lbl_Attachment.Text = "<a href='../Uploads/" +
ds_row["Attachment"].ToString() + "'>" +
ds_row["Attachment"].ToString() + "</a>";
Но это не работает. Поэтому я изменил код на следующий, чтобы открыть любой файл (изображение/PDF/слово) в новой вкладке браузера и ошибка сохраняется:
hyperlinkAppDoc.NavigateUrl =
ResolveUrl("../Uploads/" +
ds_row["Attachment"].ToString());
hyperlinkAppDoc.Target = "_blank";
Что я могу сделать, чтобы исправить эту проблему ? Типы MIME доступны в IIS.
UPDATE: Я пытаюсь разработать другой подход. Однако Server.MapPath
воспроизводит локальный диск вместо wwwroot. Как я могу указать путь к папке wwwroot?
string pdfPath = Server.MapPath("~/SomeFile.pdf");
WebClient client = new WebClient();
Byte[] buffer = client.DownloadData(pdfPath);
Response.ContentType = "application/pdf";
Response.AddHeader("content-length", buffer.Length.ToString());
Response.BinaryWrite(buffer);
Какая ошибка? К этому времени закрыт datareader? Можете ли вы попробовать удалить '..'? –
Я говорил использовать '/', если это в одном месте, вы можете попробовать '~' или сообщить мне, где находится местоположение относительно родительского пути. –
@aspiring, обновленный ответ, проверьте, он должен работать - удалите '../' –