एएसपी.Net में (सी # के साथ) मैं इसमें सादा पाठ के साथ एक डीएटी फ़ाइल बनाने की कोशिश कर रहा हूं और इसे ब्राउज़र और बल डाउनलोड करने के लिए भेज रहा हूं। मैंने कई चीजों की कोशिश की है लेकिन मैं इसे काम नहीं कर सकता। मेरी aspx फ़ाइल में एक ImageButton
फोर्स डाउनलोड एएसपी.Net
<asp:ImageButton ID="btnSave" runat="server" CausesValidation="False" ImageUrl="~/Images/Stages/Database/Save.png" OnClick="btnSave_OnClick" Width="26px" />
OnClick-विधि मैं फ़ाइल बनाने और ब्राउज़र को भेजने के लिए कोशिश कर रहा हूँ में वहाँ है।
protected void btnSave_OnClick(object sender, EventArgs e)
{
string file = "test.dat";
string fileName = "~\\Stages\\Broekx\\Databanken\\" + file;
FileStream fs = new FileStream(MapPath(fileName), FileMode.Open);
long cntBytes = new FileInfo(MapPath(fileName)).Length;
byte[] byteArray = new byte[Convert.ToInt32(cntBytes)];
fs.Read(byteArray, 0, Convert.ToInt32(cntBytes));
fs.Close();
ImageButton btnSave = (ImageButton)FormViewStagesDummy.FindControl("btnSave");
btnSave.Visible = false;
File.Delete(Server.MapPath(fileName));
if (byteArray != null)
{
this.Response.Clear();
this.Response.ContentType = "text/plain";
this.Response.AddHeader("content-disposition", "attachment;filename=" + file);
this.Response.BinaryWrite(byteArray);
this.Response.End();
this.Response.Flush();
this.Response.Close();
}
}
फ़ाइल test.dat सही फ़ोल्डर में मौजूद है और उसके बाद यह बाइट्स में पढ़ा जा चुका है हटा दिया गया है। मैंने फ़ाइल को हटाने के बिना यह कोशिश की है और यह भी काम नहीं करेगा।
बीटीएन पर क्लिक करने के बाद बटन को छुपाया जाना चाहिए, इसलिए मैंने पैरामीटर को झूठी के लिए दृश्यमान सेट किया है।
मैंने सामग्री-प्रकार "एप्लिकेशन/ऑक्टेट-स्ट्रीम" या पीडीएफ फ़ाइल और सामग्री-प्रकार "एप्लिकेशन/पीडीएफ" के साथ भी कोशिश की है लेकिन कुछ भी काम नहीं करता है। पृष्ठ सामान्य रूप से लोड होता है और कोई फ़ाइल डाउनलोड नहीं की जा रही है।
मुझे संदेह है कि प्रतिक्रिया का कुछ हिस्सा शीर्षकों के सामने भेजता है। मुझे यह भी समझ में नहीं आता कि आप फ़ाइल डाउनलोड करने के लिए एक प्रतिक्रिया की अपेक्षा कैसे करते हैं, और एक ही समय में एक बटन अदृश्य बनाते हैं। – CodesInChaos
मैंने कुछ ऐसा सोचा लेकिन मैं यह काम कैसे कर सकता हूं? – Yoni
एक साइड-नोट के रूप में: 'File.ReadAllBytes' देखें जो फ़ाइल को पढ़ने के लिए उपयोग की जाने वाली 5 लाइनों को प्रतिस्थापित कर सकता है। आपको केवल बहुत छोटी फाइलों के साथ ऐसा करना चाहिए, शायद 10kb तक। – CodesInChaos