ASP.Net:写入文件块..HTTP 文件上传与恢复

2024-02-10

请参考问题:恢复上传文件控制 https://stackoverflow.com/questions/2062852/resume-in-upload-file-control

现在为了找到上述问题的解决方案,我想研究它并开发一个可以恢复 HTTP 文件上传过程的用户控件。

为此,我将在服务器上创建一个临时文件,直到上传完成。上传完成后,会将其保存到所需位置。

我想到的程序是:

  1. 在服务器上创建一个具有唯一名称(可能是 GUID)的临时文件。
  2. 读取一块文件并将其附加到服务器上的此临时文件中。
  3. 继续步骤 1 至 3,直到达到 EOF。
  4. 现在,如果连接丢失或用户单击pause按钮,停止写入文件,且不删除临时文件。
  5. 再次点击恢复或再次上传相同文件将在服务器上检查该文件是否存在以及用户是否要resume or to overwrite. (不知道如何检查它是否是同一个文件。另外,如何逐步将块从客户端发送到服务器。)
  6. 点击resume将从需要上传的位置开始并将其附加到服务器上的文件中。 (再次不确定如何做到这一点。)

问题:

  1. 这些步骤对于实现目标是否正确?或者需要一些修改?
  2. 我不确定如何实施所有这些步骤。 :-( 需要想法、链接...

任何帮助表示赞赏...


你正在尝试的事情并不容易,但它是可行的。请遵循以下准则:

  1. 使用ajax在客户端编写2个函数:

    • getUploadedPortionFromServer(filename)- 这将询问服务器文件是否存在,并且应该从服务器获得包含以下信息的 xml 响应:
      boolean(exist/not exist), size(bytes), md5(string)
      该函数还将在本地文件上运行与从服务器获取的相同大小的 md5,
      如果md5相同,则可以从停止的地方继续发送,
      elseif 不相同或大小 == 0,则重新开始。
    • uploadFromBytes(x)- 将取决于第一个功能。

  2. 在服务器上,您必须编写匹配函数,该函数将检查所需的内容,并通过 XML 将响应发送到客户端。

    • 为了拥有不同的文件名,您应该使用某种用户标记。
    • 用户是否登录到您的服务器?如果是这样,请使用附加到文件名的用户名的哈希值,这将帮助您区分文件。
    • 如果没有,请使用 cookie。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.Net:写入文件块..HTTP 文件上传与恢复 的相关文章

随机推荐

  • 为什么我的交易没有升级为 DTC?

    我的机器上禁用了 DTC 据我了解 这段代码应该失败 因为它在同一事务中使用两个数据上下文 那么 它为什么有效呢 注意 我使用 NET 3 5 和 NET 4 0 尝试过此操作 using TransactionScope transact
  • Python lxml解析svg文件

    我正在尝试解析 svg 文件http kanjivg tagaini net http kanjivg tagaini net 但我无法成功提取里面的信息 Edit 1 完整文件 http www filedropper com 0f9ab
  • IBM data studio 未连接到本地 DB2 数据库

    我已经在本地 Ubuntu 12 04 机器上安装了 DB2 10 5 版本 现在我需要一个图形用户界面 我已经尝试过 squirrel sql 和 Db Visualizer Db Visualizer 为我提供了仅查看的数据库结构 而
  • 一个项目有两个 gitlab-ci 运行程序

    我曾经在github上有一个项目travis https travis ci org and an appveyor https www appveyor com 已配置集成服务 因此我能够确保我的项目在两个平台上都可以正常编译OSX an
  • 使用协程API获取实体

    最好的使用方法是什么coroutines使用 LiveData 从数据库中选择一些数据Room 这是 My Dao 课程 暂停选择 Dao interface UserDao Query SELECT from user table WHE
  • 如何使用 --split-debug-info=/<项目名称>/<目录>

    下面的命令中 如何使用 split debug info
  • C++ 对齐的未来:按值传递?

    阅读 Eigen 库文档 我注意到有些对象不能按值传递 http eigen tuxfamily org dox TopicPassingByValue html C 11 中是否有任何开发或计划开发可以安全地按值传递此类对象 另外 为什么
  • SharedPreferences 保存一个按钮,单击它后将其更改为不可见,并让另一个按钮出现

    我是新来的 我是法国人 所以也许我的英语不是很好 对此感到抱歉 我是 Android 开发的初学者 我必须创建一个应用程序来完成我的学习 我有一个名为 VoeuxActivity java 的活动编号 1 有 8 个按钮 和 8 个 Tex
  • Actionscript 3 和动态蒙版

    我有一个容器 MovieClip 用作我需要遮盖的内容区域 当我使用形状在此容器内创建蒙版时 我似乎无法与我在此处创建的其他容器的内容进行交互 例如按钮等 这就是我在代码中所做的 我省略了所有导入等 class MyContainer ex
  • C++ 中不同字符串类型的优缺点

    很抱歉在 SO 上开始另一个无法回答的问题 但我只是好奇 C 中所有不同字符串类型的优缺点 我的具体问题是 MFC 的 CStrings 和 std string 之间的问题 因为我只做 Windows 软件 但这将扩展到 C 中的任何字符
  • 使用 Swift 4 解析 JSON 数据数组

    我正在使用以下代码 仅当 JSON 数据不以 字符开头时 它才有效 它适用于以 字符开头的 JSON 数据 这里有一个类似的问题 快速解析 JSON 数组 https stackoverflow com questions 26840203
  • 如何访问mapGroupsWithState中的stateSnapshot或在流之间共享GroupState?

    通过 DStream API 可以使用以下命令访问有状态流的快照状态MapWithStateDStream stateSnapshots http spark apache org docs latest api scala index h
  • 无法远程调试 IIS - w3wp.exe 呈灰色显示

    我正在尝试使用远程调试来调试 IIS Web 服务 由于我们的域配置 我们无法更改 当通过 默认 选项进行远程调试时 我收到 访问被拒绝 的消息 我找到的唯一解决方案是切换到 VS 2008 中的远程 仅本机 无需身份验证 选项 问题是 当
  • JavaScript 中的插值

    我有这个jQuery http en wikipedia org wiki JQuery code selector html a href url text a where url and text是 JavaScript 变量 我将如何
  • 如何使 Visual Studio 2015 C++ 项目与 Visual Studio 2010 兼容?

    我的老师被学校安排使用 Visual Studio 2010 因为他们不想费心安装任何新东西 我一直在使用 Visual Studio 2015 并且非常喜欢它 然而 当她尝试运行任何代码时 都会产生一堆错误 我尝试了一种通过编辑解决方案文
  • 在创建新的 Android 文件项目后,我在 Eclipse 中没有原始文件夹。我能做些什么?

    抱歉 我是一名初学者程序员 我现在只学习 Android Java 特定语言 我有一本书 我想学习 但是当我制作新项目时没有原始文件夹 我怎样才能做到呢 还是我之前删除了 我不知道 因为我只是尝试发现 Eclipse IDE 并且我犯了一些
  • 如何保留嵌入的制表符

    EDIT 2019 Oct 11 Simple example 删除了前面的示例 I want awk尊重一个TAB嵌入的字符 0当它重新处理时作为内容 0字段值更改后的输入记录 1 2 这是一个简短的例子 在下面的输出中 t 48 例如
  • RshinyDashboard自定义框状态颜色

    我想自定义闪亮应用程序的框状态颜色 我找到了一种 css 方法来更改这些框的框背景颜色 但不自定义状态颜色 但我在 css 中没有看到 status 的等效参数 因此 我打印了一个简单页面的源代码 其中包含所考虑的参数 status 并且我
  • dplyr:将所有列发送到 group_by 之后的 mutate 内的函数

    在 dplyr 管道中调用任意函数时 将当前组中的所有列作为 tibble 或 data frame 发送到函数的首选方法是什么 在下面的例子中 mean B是一个简单的例子 我知道在调用函数之前需要什么 mean B fun给出了错误的答
  • ASP.Net:写入文件块..HTTP 文件上传与恢复

    请参考问题 恢复上传文件控制 https stackoverflow com questions 2062852 resume in upload file control 现在为了找到上述问题的解决方案 我想研究它并开发一个可以恢复 HT