这是我的问题。
我正在尝试创建一种程序化方式(无需客户输入任何内容),以便客户填写一些Web表单。为此,我创建了一个自定义浏览器(将作为java应用程序安装在客户的计算机上,使用eclipse swt with xulrunner v10.0 支持)。
其中一种表单需要使用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");
)只是一个建议,所以任何其他建议都会解决我的问题非常受欢迎。
非常感谢您提前
答案 0 :(得分:0)
最好的方法是使用guid将图像的名称设置为随机(大约),例如,使用angular2/http get location header of 201 response:
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();
}