c# - सर्वर सर्वर पर फ़ाइल अपलोड किए बिना किसी फ़ाइल से फाइल का उपयोग कर सकता है? ASP.NET




upload client-side (2)

मैं सोच रहा था, फिलहाल, ग्राहक सर्वर पर एक फ़ाइल को एक फाइल में अपलोड करता है जहां सर्वर एक SQL डेटाबेस को अपडेट करने के लिए फ़ाइल (csv फ़ाइल) का उपयोग कर सकता है।

क्या यह एकमात्र तरीका है कि फ़ाइल उस फ़ाइल का उपयोग कर सकता है? इसे सर्वर पर पहले अपलोड करने के लिए? या आप उस फ़ाइल को सर्वर की निर्देशिका में अपलोड किए बिना उपयोग कर सकते हैं?

(दृश्य स्टूडियो 2012, सी # और एएसपी.एन.नेट) का प्रयोग

कोड अपडेट ---

एएसपी फ़ाइल अपलोड करना (मुझे पता है कि कोड क्लीनर एक बेहतर लिखा जा सकता है, लेकिन मेरा परीक्षण कोड कभी साफ नहीं है)

                //Uplod file to the server
                FileUpload1.SaveAs(serverUploadDir + FileUpload1.FileName);

                //Use the Uploaded File to update the sql table
                dbConn.UploadCSVToSql(serverUploadDir + FileUpload1.FileName);

UploadCSVToSql

  public void UploadCSVToSql(string filepath)
        {
            //string filepath = "C:\\Copy of ABI Employee List.csv";
            StreamReader sr = new StreamReader(filepath);
            string line = sr.ReadLine();
            string[] value = line.Split(',');
            DataTable dt = new DataTable();
            DataRow row;
            foreach (string dc in value)
            {
                dt.Columns.Add(new DataColumn(dc));
            }

            while (!sr.EndOfStream)
            {
                value = sr.ReadLine().Split(',');
                if (value.Length == dt.Columns.Count)
                {
                    row = dt.NewRow();
                    row.ItemArray = value;
                    dt.Rows.Add(row);
                }
            }
            SqlBulkCopy bc = new SqlBulkCopy(conn.ConnectionString, SqlBulkCopyOptions.TableLock);
            bc.DestinationTableName = "MainDump";
            bc.BatchSize = dt.Rows.Count;
            conn.Open();
            bc.WriteToServer(dt);
            bc.Close();
            conn.Close();

मुझे नहीं पता है कि ग्राहक को अपलोड किए बिना आपको ग्राहक से फाइल कैसे मिलेगी, लेकिन उसे आपको किसी फ़ोल्डर में संग्रहीत करने की आवश्यकता नहीं है। यदि आप इसका उपयोग करते हैं

    <asp:FileUpload ID="fuMyUpload" runat="server" /> 

नियंत्रण। आप एक स्ट्रीम में डेटा प्राप्त कर सकते हैं और इसे स्मृति में संग्रहीत कर सकते हैं

    if (!fuMyUpload.HasFile)
    {
         lblWarning.Text = "No file Selected";
         return;
    }

    var csvData = Encoding.UTF8.GetString(fuCircuitCsv.FileBytes);

    using (var reader = new StringReader(csvData))
    {
          var headers = reader.ReadLine().Split(',');
          while ((line = reader.ReadLine()) != null)
          {
                 var fields = line.Split(',');
          }
    }

यदि आपके पास सर्वर पर चलने वाली पृष्ठभूमि की नौकरी है जो किसी भी सीएसवी फ़ाइल के लिए फ़ोल्डर की निगरानी करता है, तो उसे सर्वर पर अपलोड करना होगा। अगर ऐसा नहीं है, तो आप फ़ाइल को # सी में ही संसाधित करने और डेटाबेस अद्यतन करने में सक्षम होना चाहिए।





server-side