2012-10-11 14 views
5

मैं इंटरनेट के चारों ओर खोज कर रहा हूं, लेकिन कोई उपयोगी उत्तर नहीं मिला।फ़ाइल डाउनलोड करने के लिए संवाद बॉक्स सहेजें, क्लाइंट को ASP.NET सर्वर से फ़ाइल सहेजना

मेरे पास एक एएसपी.नेट वेबसाइट है, जो सर्वर पर तैनात है। सर्वर पर एएसपी.NET वेबसाइट W:/नामक निर्देशिका तक पहुंच सकती है। कंपनी के ग्राहक वेबसाइट तक पहुंच सकते हैं। वेब साइट सूची सूची में सभी पीडीएफ फाइलों को डब्ल्यू:/निर्देशिका से सूचीबद्ध करती है। ग्राहक सूची बॉक्स से पीडीएफ फाइलों का चयन करने में सक्षम होना चाहिए और इसके लिए एक स्थान चुनकर उन्हें अपने स्थानीय पीसी में सहेजना चाहिए।

कुछ वेब पेजों पर फ़ाइल के रूप में सहेजने जैसा कुछ है।

क्या आप मुझे कुछ समाधान या आसपास काम कर सकते हैं?

उत्तर

0

स्रोत कोड के साथ कई उदाहरण खोजने के लिए सही कीवर्ड "फ़ाइल ब्राउज़र एएसपीनेट" हैं।

यहाँ codeproject से एक है: डब्ल्यू ड्राइव से बाइट में

http://www.codeproject.com/Articles/301328/ASP-NETUser-Control-File-Browser

+0

आप @Aristos धन्यवाद! – user1734609

+0

@ user1734609 क्या आप इसे देख रहे हैं? :) – Aristos

+0

मैंने लेख के माध्यम से पढ़ना समाप्त कर दिया है, लेकिन बिल्कुल नहीं :) मेरे पास सूची बॉक्स में पीडीएफ फ़ाइल नाम हैं। डब्ल्यू:/निर्देशिका से फ़ाइलें एक अलग सर्वर पर हैं, लेकिन डोमेन के अंदर हैं। सूचीबॉक्स उस निर्देशिका के सभी फ़ाइल नामों को सूचीबद्ध कर रहा है। वेबसाइट खोलने पर कंपनी के अंदर ग्राहक निर्देशिका से पीडीएफ फाइलों की सूची प्राप्त कर सकता है। फिर एक या अधिक का चयन करें और के रूप में सहेजें पर क्लिक करें। और अपने पीसी पर सहेजने में सक्षम होना चाहिए :) क्या आप इस बिंदु को समझते हैं? :) – user1734609

0

प्राप्त करें फ़ाइल सामग्री [] और यह स्थानीय फ़ाइल पर लिखने।

byte[] data = File.ReadAllBytes(WDriveFilePath) 

FileStream file = File.Create(HttpContext.Current.Server.MapPath(MyLocalFile)); 

file.Write(data, 0, data.Length); 
file.Close(); 
+0

यह एक सहेजने वाली संवाद प्रदान नहीं करता है। – bgmCoder

4

अंत में मैं एक लेख है, जो एक सहेजें संवाद बॉक्स संकेत देता है ASP.NET

मैं इसे यहाँ पोस्ट से एक फ़ाइल डाउनलोड करने में मिल गया है, और साथ ही किसी को मदद करने और कुछ समय बचाने के सकता है।

String FileName = "FileName.txt"; 
String FilePath = "C:/...."; //Replace this 
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response; 
response.ClearContent(); 
response.Clear(); 
response.ContentType = "text/plain"; 
response.AddHeader("Content-Disposition", "attachment; filename=" + FileName + ";"); 
response.TransmitFile(FilePath); 
response.Flush(); 
response.End(); 
+1

अपने लेख के लिए कोरी मैथ्यूज के लिए धन्यवाद। – user1734609

+0

क्या यह .zip फ़ाइलों को डाउनलोड करने के लिए काम करेगा? उसके लिए किस सामग्री प्रकार का इस्तेमाल किया जा रहा है? – alegz

-1

मैंने फ़ाइल प्राप्त करने के लिए ऐसा कुछ किया है।

protected void btnExportFile_Click(object sender, EventArgs e) 
     { 
      try 
      { 
       Thread newThread = new Thread(new ThreadStart(ThreadMethod)); 
       newThread.SetApartmentState(ApartmentState.STA); 
       newThread.Start();  

       // try using threads as you will get a Current thread must be set to single thread apartment (STA) mode before OLE Exception . 


      } 
      catch (Exception ex) 
      { 

      } 

     } 

     static void ThreadMethod() 
     { 
      Stream myStream; 
      SaveFileDialog saveFileDialog1 = new SaveFileDialog(); 
      saveFileDialog1.FilterIndex = 2; 
      saveFileDialog1.RestoreDirectory = true; 

      if (saveFileDialog1.ShowDialog() == DialogResult.OK) 
      { 
       if ((myStream = saveFileDialog1.OpenFile()) != null) 
       { 
        // Code to write the stream goes here. 
        myStream.Close(); 
       } 
      } 
     } 
1

यह उपयोगकर्ता 173460 9 के समाधान का विस्तार है जो स्थानीय रूप से फ़ाइल प्राप्त करता है।

ग्राहक के लिए सर्वर से कोई फ़ाइल डाउनलोड करने के लिए:

public void DownloadFile() 
     { 
      String FileName = "201604112318571964-sample2.txt"; 
      String FilePath = AppDomain.CurrentDomain.BaseDirectory + "/App_Data/Uploads/" + FileName; 
      System.Web.HttpResponse response = System.Web.HttpContext.Current.Response; 
      response.ClearContent(); 
      response.Clear(); 
      response.ContentType = "text/plain"; 
      response.AddHeader("Content-Disposition", "attachment; filename=" + FileName + ";"); 
      response.TransmitFile(FilePath); 
      response.Flush(); 
      response.End(); 


     } 
संबंधित मुद्दे