【问题标题】:Rename or Delete a File on Client's Machine after Upload上传后重命名或删除客户端计算机上的文件
【发布时间】:2015-06-01 16:53:49
【问题描述】:

您好,我有几个问题。

-在他通过文件上传控件将文件上传到服务器后,有没有办法在客户端的机器上删除或重命名文件。

-这个更接近我之前问过的一个问题 (link),如果您可以获取上传文件的路径或将上传的文件移动到 客户的计算机上,如果客户端为您的网站设置了 IE 可信站点安全区。

总体问题是客户将许多文件上传到网站。文件上传后,需要在客户的计算机上明确该文件已经上传过一次,这样他们就不会错过或重新上传相同的文件。如果文件在上传时被重命名、移动或删除,那么他们将很难错过或重新上传文件。

【问题讨论】:

  • if (!File.Exists(file path here);?
  • @Brian 问题是网站是否可以自动更改客户端计算机上的某些内容,这将是一个巨大的安全问题。
  • @Brian 我在想类似的事情,比如检查上传文件是否已经在服务器上以防止重复文件,但这并不能阻止丢失文件的大问题。
  • 我应该更具体地回答我的问题...该代码 sn-p 仅用于服务器端

标签: javascript c# asp.net internet-explorer


【解决方案1】:

不,您不能从客户端的机器上删除文件(不能在机器上运行某种类型的扩展或并行软件)。相反,我会鼓励您考虑另一条路线。选择多个文件以进行上传时,您可以通过JavaScript访问它们的file names and file sizes

fileupload.addEventListener( "change", function () {
    console.log( this.files ); // FileList {0: File, 1: File, 2: File, length: 3}
});

我建议您将此详细信息列表发送到服务器端脚本,该脚本会根据当前用户的上传历史记录检查它们。如果存在匹配项,您可以将该信息转发给用户,并允许他们修改要上传的文件列表。

【讨论】:

  • // ,很好。我喜欢这甚至包含一个代码示例!此外,您可能只是让客户端脚本在上传之前进行快速名称比较。它甚至不需要是服务器端的。
  • @37coins 您可以在客户端存储最近上传的文件列表,但这比在服务器端存储它们更脆弱。
  • // ,我并不是说要在客户端存储任何数据超过几秒钟。它可以在将文件添加到要上传的文件列表时发送对上下文过滤的 json 的请求。
  • 我想我明白你在说什么。从服务器请求最近上传的文件列表,并将 FileList 与 那个 服务器响应进行比较?
  • 我认为也可以比较文件二进制文件的 MD5 哈希以完全确保没有双精度数,但这可能有点矫枉过正。
猜你喜欢
  • 2016-02-04
  • 2012-07-28
  • 2013-11-04
  • 1970-01-01
  • 2010-10-17
  • 2015-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多