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

标签 jquery file-upload filenames

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

我使用了以下片段:

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

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

并以编程方式上传文件:

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

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

提前非常感谢

最佳答案

最好的方法是使图像的名称​​唯一随机(大约),例如,像这样使用 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();
}

关于jquery - 使用 blueimp jQuery-File-Upload 上传时如何更改文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16722502/

相关文章:

javascript - Bootstrap 模式 : Cannot call method 'scrollTop' of undefined

jquery - 动画滚动到顶部

java - PrimeFaces 如何验证上传的文件名?

python - 将 Django FileField 的内容上传到远程服务器

linux - 名称开头带有连字符的文件

php - 仅显示具有不同名称的 <h1> 的第一个

javascript - 访问ajax.actionlink "text to display"

安卓 : How to get internet connection upload speed and latency?

java - 从 Properties 实例获取使用的文件名

使用 'Filename' 在其他工作表中更新的 Excel 公式