Bonjour,
Je suis actuellement en train de développer une application Web avec Asp Net Core 1.
Je souhaiterais avoir une page web permettant de visualiser des fichiers PDF sur une partie de la page.
Pour cela j'ai donc décidé d'utiliser la méthode des HTTP Handler, car un simple <embed> en direction du fichier ne fonctionne pas car GoogleChrome indique "Not allowed to load local file", cependant cela ne fonctionne pas..
Code du Web.config
Code de ma classe PDFHandler
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <handlers> <add name="PDF" path="*.pdf" verb="*" type="PDFHandler" resourceType="Unspecified"/> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" /> </handlers> <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="true" /> </system.webServer> </configuration>
Fonction dans mon HomeController
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 using System.Web; public class PDFHandler : IHttpHandler { public PDFHandler() { } #region IHttpHandler Members public void ProcessRequest(HttpContext context) { string fileName = "Demande paiement Astreinte_201607.pdf"; System.Web.HttpResponse response = System.Web.HttpContext.Current.Response; response.ClearContent(); response.Clear(); response.ContentType = "application/pdf"; response.AddHeader("Content-Disposition", "attachment; filename=" + fileName + ";"); response.TransmitFile(System.Web.HttpContext.Current.Server.MapPath("F:\\1833-Pôle Production Informatique\\40-Organisation\\40-01-Astreinte\\Formulaires_TEST_GESTIONASTREINTES\\Demande paiement Astreinte_201607.pdf")); response.Flush(); response.End(); } public bool IsReusable { get { return true; } } #endregion IHttpHandler Members }
Code de ma page CSHTML
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 protected void btnDownload_Click(object sender, EventArgs e) { Response.Redirect("PDFHandler.ashx"); }
J'ai plusieurs problème auquel je n'ai pas les réponse, premièrement mon bouton "asp:Button" ne s'affiche pas et donc le OnClick ne s'exécute pas..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <asp:Button ID="btnDownload" runat="server" Text="Download File" OnClick="btnDownload_Click" />
Voyez vous des éventuels erreurs ?
Merci d'avance !
Partager