【问题标题】:How to change a filename when uploading with blueimp jQuery-File-Upload?使用 blueimp jQuery-File-Upload 上传时如何更改文件名?
【发布时间】:2013-05-19 07:39:28
【问题描述】:

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

我用过以下sn-ps:

使用托管在客户本地计算机上的 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】:

最好的办法是让你的图片名称​​随机(近似),例如,像这样,使用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();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-18
    • 2020-12-10
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多