gpt4 book ai didi

c# - 服务器可以使用来自客户端的文件而不将其上传到服务器吗?网络

转载 作者:行者123 更新时间:2023-11-30 15:34:07 31 4
gpt4 key购买 nike

我想知道,此刻,客户端将文件上传到服务器上的目录,然后服务器可以使用该文件(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();

最佳答案

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

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

关于c# - 服务器可以使用来自客户端的文件而不将其上传到服务器吗?网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16605138/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com