服务器是否可以使用来自客户端的文件而无需将其上传到服务器? ASP.NET

我想知道,目前,客户端将文件上传到服务器上的目录,然后服务器可以使用该文件(csv文件)来更新SQL数据库。

这是服务器使用该文件的唯一方法吗? 首先要将它上传到服务器? 或者你可以使用该文件而不将其上传到服务器的目录?

(使用visual studio 2012,C#和asp.net)

代码更新—

asp上传文件。 (我知道代码可以更清晰,写得更好,但我的测试代码永远不干净)

//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(); 

我没有看到如何在不上传文件的情况下从客户端获取文件到服务器,但是您不需要将文件存储到文件夹中。 如果你使用

   

控制。 您可以在流中获取数据并将其存储在内存中。

  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(','); } } 

如果您在监视任何CSV文件的文件夹的服务器上运行后台作业,则需要将其上载到服务器。 如果不是这种情况,那么您应该能够仅在C#中处理该文件并执行数据库更新。