खोज…
किसी विशेष स्थान से फ़ाइल डाउनलोड करने के लिए httpHandler (.ashx) का उपयोग करना
अपने ASP.NET प्रोजेक्ट के अंदर एक नया httpHandler बनाएँ। निम्नलिखित कोड (VB) हैंडलर फ़ाइल पर लागू करें:
Public Class AttachmentDownload
Implements System.Web.IHttpHandler
Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
' pass an ID through the query string to append a unique identifer to your downloadable fileName
Dim fileUniqueId As Integer = CInt(context.Request.QueryString("id"))
' file path could also be something like "C:\FolderName\FilesForUserToDownload
Dim filePath As String = "\\ServerName\FolderName\FilesForUserToDownload"
Dim fileName As String = "UserWillDownloadThisFile_" & fileUniqueId
Dim fullFilePath = filePath & "\" & fileName
Dim byteArray() As Byte = File.ReadAllBytes(fullFilePath)
' promt the user to download the file
context.Response.Clear()
context.Response.ContentType = "application/x-please-download-me" ' "application/x-unknown"
context.Response.AppendHeader("Content-Disposition", "attachment; filename=" & fileName)
context.Response.BinaryWrite(byteArray)
context.Response.Flush()
context.Response.Close()
byteArray = Nothing
End Sub
ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
Get
Return False
End Get
End Property
End Class
आप हैंडलर को कोड के पीछे, या क्लाइंट साइड भाषा से कॉल कर सकते हैं। इस उदाहरण में मैं एक जावास्क्रिप्ट का उपयोग कर रहा हूं जो हैंडलर कहेगा।
function openAttachmentDownloadHandler(fileId) {
// the location of your handler, and query strings to be passed to it
var url = "..\\_Handlers\\AttachmentDownload.ashx?";
url = url + "id=" + fileId;
// opening the handler will run its code, and it will close automatically
// when it is finished.
window.open(url);
}
अब अटैच करें कि जावास्क्रिप्ट फंक्शन को अपने वेब फॉर्म में एक क्लिक करने योग्य तत्व पर एक बटन क्लिक इवेंट में असाइन करें। उदाहरण के लिए:
<asp:LinkButton ID="lbtnDownloadFile" runat="server" OnClientClick="openAttachmentDownloadHandler(20);">Download A File</asp:LinkButton>
या आप जावास्क्रिप्ट फ़ंक्शन को पीछे के कोड से भी कॉल कर सकते हैं:
ScriptManager.RegisterStartupScript(Page,
Page.GetType(),
"openAttachmentDownloadHandler",
"openAttachmentDownloadHandler(" & fileId & ");",
True)
अब जब आप अपने बटन पर क्लिक करते हैं तो httpHandler आपकी फ़ाइल को ब्राउज़र में ले जाएगा और उपयोगकर्ता से पूछेगा कि क्या वे इसे डाउनलोड करना चाहते हैं।
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow