Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有可能在发布之前重命名html fileinput的文件_Javascript_Html_Http_Post_File Io - Fatal编程技术网

Javascript 是否有可能在发布之前重命名html fileinput的文件

Javascript 是否有可能在发布之前重命名html fileinput的文件,javascript,html,http,post,file-io,Javascript,Html,Http,Post,File Io,我有一个包含各种字段和一些文件输入的HTML表单。 问题是,Web服务器在windows计算机上运行,一些用户从mac os或linux上载文件时,windwos上不允许使用字符,例如::和? 获取文件的filehandler(Axon.Ivy/JAVA)无法处理这些字符并引发异常。我无法更改文件处理程序 因为原始文件名是不相关的,所以我的最佳解决方案是,在实际发布之前重命名文件,或者在发布数据中操作filename属性。最好使用javascript 有什么可能的方法来实现这一点吗? 提前谢谢

我有一个包含各种字段和一些文件输入的HTML表单。 问题是,Web服务器在windows计算机上运行,一些用户从mac os或linux上载文件时,windwos上不允许使用字符,例如:

获取文件的filehandler(Axon.Ivy/JAVA)无法处理这些字符并引发异常。我无法更改文件处理程序

因为原始文件名是不相关的,所以我的最佳解决方案是,在实际发布之前重命名文件,或者在发布数据中操作filename属性。最好使用javascript

有什么可能的方法来实现这一点吗? 提前谢谢

是的,使用,您可以在通过AJAX发送文件之前为文件设置其他名称:

。。。
var form=new FormData();
append(someField,someInput.value);
//附加文件或Blob时,第三个参数是文件名
form.append('fileField',fileinput.files[0],filename);
发送(表格);
sub.onclick=e=>{
var form=new FormData();
append('fileField',inp.files[0],'myFile.ext');
log(form.get('fileField');
}


提交
您是否有任何关于浏览器兼容性的信息。MDN只有以下信息:此外,我更喜欢没有AJAX的解决方案。@Dethrall,我一直认为即使IE10也支持文件名参数,但现在MDN给了我一个疑问(请注意,对于IE,它被设置为“?”。但据我所知,这对windows系统来说不是问题,对windows用户来说也不是问题,因为他们对文件名的限制与服务器相同。但是,我不想以不同的方式处理不同的浏览器或操作系统。@Dethrall那么您的浏览器的最低支持是什么?如果我需要支持IE