如何在 C# 中将字符串数据作为 ZIP 存档上传到 FTP 服务器

2024-03-09

这是我的代码。我想导出/上传这个.dat文件以 zip 格式传输到 FTP 服务器。 我尝试了很多但没有找到任何解决方案。任何人都可以帮助我解决这个问题。

public string ExportVoid(FileSetups fileSetup, HttpPostedFileBase file)
{
    var sb = new System.Text.StringBuilder();

    var list = _context.VOIDS.ToList();
  
    foreach (var item in list)
    {
        sb.AppendFormat("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}\t{8}\r", item.Date, item.Time, item.Shift, item.EmployeeID, item.Amount, item.Items, item.DrawerOpen, item.Postpone, item.LocationID);
    }
    System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
   
    WebClient myWebClient = new WebClient();
    var dbftp = _context.FileSetup.SingleOrDefault();
    var a = dbftp.FTP;
    var v = Session["ClientId"];
    var d = DateTime.Now.ToString("MM_dd_yyyy_hh:mm:ss");
    string uriString = "ftp://MyFTP.com/Files/" + "Void" + ".dat";
    myWebClient.Credentials = new NetworkCredential("userName", "password");
    //Console.WriteLine("\nPlease enter the data to be posted to the URI {0}:", uriString);
    string postData = sb.ToString();
    // Apply ASCII Encoding to obtain the string as a byte array.
    byte[] postArray = Encoding.ASCII.GetBytes(postData);

    myWebClient.Headers.Add("Content-Disposition", "attachment; filename=" + "Void.dat");
    
    byte[] responseArray = myWebClient.UploadData(uriString, postArray);

    return "Export Successfully!";
}

如果你想压缩内存中的字符串(postData)并将 zip 上传到 FTP 服务器,您可以使用:

using (var memoryStream = new MemoryStream())
{
    using (var archive = new ZipArchive(memoryStream, ZipArchiveMode.Create, true))
    {
        // Repeat this block, if you want to add more files
        ZipArchiveEntry entry = archive.CreateEntry("void.dat");

        using (Stream entryStream = entry.Open())
        using (var writer = new StreamWriter(entryStream, Encoding.UTF8))
        {
            writer.Write(postData);
        }
    }

    memoryStream.Seek(0, SeekOrigin.Begin);

    var request = WebRequest.Create("ftp://ftp.example.com/remote/path/archive.zip");
    request.Credentials = new NetworkCredential("username", "password");
    request.Method = WebRequestMethods.Ftp.UploadFile;
    using (Stream ftpStream = request.GetRequestStream())
    {
        memoryStream.CopyTo(ftpStream);
    }
}

如果文本很小,那么内存占用并不重要,您可以简化上传代码(一切都来自memoryStream.Seek到最后)到:

    var client = new WebClient();
    client.Credentials = new NetworkCredential("username", "password");
    client.UploadData(
        "ftp://ftp.example.com/remote/path/archive.zip", memoryStream.ToArray());

基于在 C# 中压缩目录并上传到 FTP 服务器,而不将 .zip 文件保存在本地 https://stackoverflow.com/q/46682983/850848.


关于相反操作的相关问题:
如何使用 C# 将数据从存储在 FTP 服务器上的 ZIP 文件导入到数据库 https://stackoverflow.com/q/66370122/850848

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 C# 中将字符串数据作为 ZIP 存档上传到 FTP 服务器 的相关文章

  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 引用的程序集自动由 Visual Studio 替换

    我有 2 个项目 一个可移植类库和一个常规单元测试项目 在可移植类库中 我使用 NuGet 来引用 Microsoft BCL 可移植包 它附带 2 个程序集 System Threading Tasks dll and System Ru
  • 如何在当前 Visual Studio 主机内的 Visual Studio 扩展中调试使用 Roslyn 编译的代码?

    我有一个 Visual Studio 扩展 它使用 Roslyn 获取当前打开的解决方案中的项目 编译它并从中运行方法 程序员可以修改该项目 我已从当前 VisualStudioWorkspace 成功编译了 Visual Studio 扩
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • 为 Clojure 协议提供多种实现

    我有一个公开常见数据相关函数的命名空间 get images insert user 然后 我有两个具有相同功能并以不同方式实现它们的数据库后端 他们按原样实现接口 每个后端都包含在一个命名空间中 我似乎无法找到如何完成此任务的良好解决方案
  • Java 项目中服务器和客户端包的共享资源

    我有一个 Java 项目 其中包含服务器包和客户端包 另外我还有一个图书馆包 我使用 eclipse 并将所有内容放入一个 Java 项目中 每个部分服务器 客户端和库都位于单独的包中 问题是当我导出时 所有内容都会添加到 Jar 文件中
  • 如何在 Azure Key Vault 中序列化和反序列化 PFX 证书?

    我有一堆字符串和 pfx 证书 我想将它们存储在 Azure Key Vault 中 只有允许的用户 应用程序才能获取它们 将字符串存储为 Secret 并不难 但是如何以可以检索它并反序列化为证书的方式序列化证书 X509证书2 http
  • Pandas:连接数据帧并保留重复索引

    我有两个数据框 我想将它们按列 axis 1 与内部联接连接起来 其中一个数据帧有一些重复的索引 但行不重复 我不想丢失其中的数据 df1 pd DataFrame a 1 b 2 a 1 b 3 a 2 b 4 columns a b s
  • Laravel - 计算目录的总大小?

    我试图获取 Laravel 中 directory 的总大小 到目前为止我只能使用 size 函数获取单个文件的大小 好像没有这方面的例子或者文档 任何对此的意见将不胜感激 谢谢 我认为你不能 Laravel 5 用途飞行系统 http f
  • 如何将负数转换为正数?

    如何在Python中将负数转换为正数 并保持积极的态度 gt gt gt n 42 gt gt gt n if you know n is negative 42 gt gt gt abs n for any n 42 不要忘记检查docs
  • 如何将枚举类型变量转换为字符串?

    如何使 printf 显示枚举类型变量的值 例如 typedef enum Linux Apple Windows OS type OS type myOS Linux 我需要的是类似的东西 printenum OS type My OS
  • CSS 弹跳线加载动画

    我正在尝试创建一个简单的加载动画 来回绘制一条线 但目前仅朝一个方向移动 一旦到达动画的中间 它就不会以相反的方向动画 这是我的CSS keyframes loader animation 0 width 0 49 width 100 50
  • 在TabLayout设计支持库中无法看到Tab Indicator

    我正在使用材料设计库并使用创建布局CoordinatorLayout 应用栏布局 RecyclerView and TabLayout 我的问题是我无法看到选项卡指示器Tablayout 下面是我正在使用的 xml 文件AppCompact
  • 错误的snakemake glob_wilcards 和 wildcard_constraints

    在我的 Snakemake 管道中 我试图检索正确的通配符 我研究过 wildcard constraints 和这个帖子 https stackoverflow com questions 66882849 snakemake how t
  • 使用 jersey 和 grizzly 启用 JSON

    我正在玩 Grizzly 托管的 Jersey 并且希望能够使用和生成 JSON 但是我在 get 请求中从服务器收到 500 并且 POST 中不支持媒体类型 我的服务器代码是 org glassfish jersey server Re
  • Safari 9.0无法播放存储服务器上的mp4视频

    以下视频链接无法用safari 9 0 最新版本 播放 但老版本的 safari chrome 和 firefox 都可以玩 http assets00 grou ps 0F2E3C wysiwyg files Videos saksuka
  • 执行迁移时 Npgsql 找不到 NpgsqlException

    当我做一个update database我得到的数据库发生错误 System Runtime Serialization SerializationException 类型不是 已解决成员 Npgsql NpgsqlException Np
  • Holo 主题可以与自定义标题栏一起使用吗?

    我有一个应用程序 它使用以下样式为应用程序主题绘制自定义标题栏 这并没有给我全息主题 所以我将其设置为parent android style Theme Holo 这会使应用程序崩溃并出现以下错误 E AndroidRuntime 204
  • 使用 CAMediaTimingFunction 计算时间 (t) 处的值

    在Cocoa Touch中 CAMediaTimingFunction代表四个控制点 它们指定定时函数的三次贝塞尔曲线 对于我正在编写的应用程序 我希望能够在任意时间 t 0 gt 1 提取所述贝塞尔曲线的结果 让我困惑的是 当我查找如何d
  • CBOW 与Skip-gram:为什么要颠倒上下文和目标词?

    In this https www tensorflow org versions r0 9 tutorials word2vec index html vector representations of words页面上 据说 skip
  • SQL Server 2005 Unicode字符串排序问题

    我有一张名为 Soum 的表 这张表有NVARCHAR 100 字段命名 Name 但排序依据name 那个错误的工作 请看图片 执行查询后 第一个红行排序错误 我不明白为什么这是错误的工作 我检查了字符是否相同 但红色行中的 字符是相同的
  • git:如何从远程分支获取并合并到本地分支?

    我分叉自 github com mantisbt mantisbt https github com mantisbt mantisbt 这导致 github com MYACCOUNT mantisbt 从我克隆它的地方并将分支 我感兴趣
  • 命名空间 .AspNetCore.Hosting 与 .Extensions.Hosting

    在我的 ASP NET Core 2 0 项目中 我一直在使用 Microsoft Extensions Hosting 命名空间中的 IHostingEnvironment 和 IApplicationLifetime 在 ASP NET
  • 如何在 C# 中将字符串数据作为 ZIP 存档上传到 FTP 服务器

    这是我的代码 我想导出 上传这个 dat文件以 zip 格式传输到 FTP 服务器 我尝试了很多但没有找到任何解决方案 任何人都可以帮助我解决这个问题 public string ExportVoid FileSetups fileSetu