javascript - 添加前缀到文件名,javascript

标签 javascript jquery angularjs

我想在文件的文件名中添加前缀,在将其发送到服务器之前,我有一个如下所示的输入字段:

<input type="file" id="uploadControlId">

如果我这样做:

var element = document.getElementById("uploadControlId");
console.log('file: ' + element);

我得到输出:

file: [object HTMLInputElement]

我可以通过拆分元素来读取文件名,但由于该元素是一个 url,我不知道如何更改名称。

分割:

var element = document.getElementById("uploadControlId");
var elements = element.value.split("\\");
var fileName = parts[elements.length - 1];

最佳答案

出于安全原因,您无法更改文件输入的值。您可以执行自己的 AJAX 脚本来发布具有其他名称的文件,但不使用标准浏览器/表单功能。对于您的情况,有一个简单的解决方案,只需添加一个隐藏字段并通过该字段传递名称即可。该字段的值可以在提交时设置。

<input id="uploadControlId" type="file" >
<input id="uploadFilename" type="hidden" value="">

有一个标签jquery,所以我将使用jquery

$('#yourFormId').submit(function(){
   var filename = "prefix_" + $($("#uploadControlId").val().split("\\")).last();
   $('#uploadFilename').val(filename);
   return true;
});

或者你可以做类似的事情

关于javascript - 添加前缀到文件名,javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31723412/

相关文章:

javascript - 关于jQuery的scrollTop。滚动到不同的目标(返回顶部除外)

javascript - 用粗箭头对素数进行数组过滤

javascript - 放大的弹出对象

javascript - jQuery 构造函数和初始化

javascript - Wtf IE7 - 使用 setTimeout 的 AJAX 调用

javascript - Nodejs 在工作一段时间后停止响应请求

jquery - 为什么我会收到 Uncaught TypeError : Object #<an HTMLSelectElement> has no method 'find' ?

javascript - 在 Angular JS 中向选项卡添加 Controller

javascript - 在 Angular1 中使用 $routeProvider 时如何正确跨页面加载 javascript

angularjs - 从 AngularJS url 中删除片段标识符(# 符号)