我正在使用JQuery File Upload plugin。
我想限制上传到一个图片,如果选择了另一个图片则替换,并在上传到服务器之前重命名。我的HTML代码
<span class="btn btn-success fileinput-button">
<i class="glyphicon glyphicon-plus"></i>
<span>Add files...</span>
<input id="fileupload" type="file" name="files[]">
</span>
我尝试在文件中进行一些更改
jquery.fileupload.js
但没有成功。
答案 0 :(得分:2)
我意识到这是很久以前问过的,但是当其他工具如DropzoneJS在将文件名发送到服务器之前有办法改变文件名时,另一个回答是不完整的答案。在搜索源代码之后,事实证明jQuery文件上传也具备该功能。
在jQuery文件上传submit
事件回调中或在调用data.submit()
之前的任何时间,更改files
数组并设置uploadName
。例如:
$('#fileupload').fileupload({
maxNumberOfFiles: 1,
submit: function(e, data) {
data.files[0].uploadName = 'mynewfilename.jpg';
}
});
虽然浏览器控制的name
对象上的File
属性是只读的,但这并不会阻止定义新属性。 jQuery文件上传发送uploadName
如果存在,则返回name
。
当然,这里没有任何内容排除了验证传入数据的服务器端职责,但它确实表明可以更改jQuery文件上传发送到服务器的文件名。
答案 1 :(得分:1)
出于安全原因,客户端javascripts无法控制此情况。您可以在上传文件时重命名该文件。
此处提供的类似问答文件rename file that user uploads javascript
最佳做法是在服务器端重命名文件,例如在PHP脚本中
您可以使用maxNumberOfFiles选项限制文件
$('#fileuploadbasic').fileupload({
maxNumberOfFiles: 1
});