使用blueimp jQuery-File-Upload上传时如何更改文件名?

问题描述 投票:2回答:1

这是我的问题。 我正在尝试创建一种程序化方式(无需客户输入任何内容),以便客户填写一些Web表单。为此,我创建了一个自定义浏览器(将作为java应用程序安装在客户的计算机上,使用支持xulrunner v10.0的eclipse swt)。 其中一种形式需要使用blueimp jquery fileupload plugin上传文件。该文件托管在客户机器上的预定义目录中(假设它是C:\,因为它是基于Windows的应用程序)。

我使用了以下代码段:

使用客户本地计算机上托管的javascript创建文件:

var myFile = File("C:\some_dummy_file");

并以编程方式上传文件:

$('#some_form').fileupload('add', {files: myFile});

一切都工作得很好,但有一个例外: 上传的文件现在名为'C:some_dummy_file'(而不是'some_dummy_file'),因为它似乎包含它所在的目录。不幸的是,当服务器应用文件名验证时,它拒绝上传,因为它只需要名为'some_dummy_file'的文件。 另外,因为我在服务器端没有控制权,所以我无法在服务器端更改文件名(我已经看到了这些情况的一些示例,但这些不能在我的情况下使用)。 我有哪些选项/解决方法?在添加(或提交)文件之前有没有办法更改名称? 当然,我创建文件的方式(var myFile = File("C:\some_dummy_file");)只是一个建议,所以任何其他建议将解决我的问题是非常受欢迎的。

非常感谢你提前

jquery file-upload filenames
1个回答
0
投票

最好的方法是使用guid使图像的名称随机(大约)独特,例如,像这样:

var myFile = File(guid);
function guid() {

  function s4() {
    return Math.floor((1 + Math.random()) * 0x10000)
      .toString(16)
      .substring(1);
  }
  return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
    s4() + '-' + s4() + s4() + s4();
}
© www.soinside.com 2019 - 2024. All rights reserved.