gpt4 book ai didi

c# - ASP.Net:写文件 block ..HTTP文件上传简历

转载 作者:太空宇宙 更新时间:2023-11-03 11:51:22 25 4
gpt4 key购买 nike

请引用问题:Resume in upload file control

现在要找到上述问题的解决方案,我想着手开发一个可以恢复 HTTP 文件上传过程的用户控件。

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

我想到的程序是:

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

问题:

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

感谢任何帮助...

最佳答案

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

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

    • getUploadedPortionFromServer(filename) - 这将询问服务器文件是否存在,它应该从服务器获得包含以下信息的 xml 响应:
      bool 值(存在/不存在)大小(字节)md5(字符串)
      该函数还将在本地文件上运行与从服务器获得的大小相同的 md5,
      如果md5相同,可以从停止点继续发送,
      elseif 不一样或 size == 0,重新开始。
    • uploadFromBytes(x) - 将取决于第一个函数。

  2. 在服务器上你必须编写匹配函数,它会检查所需的东西,并通过 XML 将响应发送到客户端。

    • 为了拥有不同的文件名,您应该使用某种用户标签。
    • 用户是否登录到您的服务器?如果是这样,请使用附加到文件名的用户名的哈希值,这将帮助您区分文件。
    • 如果没有,请使用 cookie。

关于c# - ASP.Net:写文件 block ..HTTP文件上传简历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2069880/

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