Javascript jQuery文件上传,只上传单个图像并在上传前重命名
我在用电脑 我想将上载限制为一个图像,如果选择了另一个图像,则进行替换,并在上载到服务器之前重命名。我的html代码Javascript jQuery文件上传,只上传单个图像并在上传前重命名,javascript,jquery,file-upload,Javascript,Jquery,File Upload,我在用电脑 我想将上载限制为一个图像,如果选择了另一个图像,则进行替换,并在上载到服务器之前重命名。我的html代码 <span class="btn btn-success fileinput-button"> <i class="glyphicon glyphicon-plus"></i> <span>Add files...</span> <input id="fileupload" type="fi
<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>
但是没有成功。出于安全原因,客户端Java脚本无法控制此操作。上载文件时,可以在服务器上重命名该文件 这里给出了类似的问题和答案 最佳实践是重命名服务器端的文件,例如PHP脚本中的文件 您可以使用maxNumberOfFiles选项限制您的文件
$('#fileuploadbasic').fileupload({
maxNumberOfFiles: 1
});
我意识到这是很久以前提出的问题,但当其他工具(如DropzoneJS)能够在文件名发送到服务器之前更改文件名时,另一个回答是不完整的。在仔细阅读了源代码之后,jQuery文件上传也具备了这个功能 在jQuery File Upload
submit
事件回调中,或在调用data.submit()
之前的任何时候,更改文件
数组并设置uploadName
。例如:
$('#fileupload').fileupload({
maxNumberOfFiles: 1,
submit: function(e, data) {
data.files[0].uploadName = 'mynewfilename.jpg';
}
});
虽然浏览器控制的文件
对象上的名称
属性是只读的,但这不会阻止定义新属性。jQuery文件上传发送uploadName
(如果存在),否则返回name
当然,这里没有排除服务器端验证传入数据的责任,但它确实表明可以更改jQuery File Upload发送到服务器的文件名。我解决了这个问题。它对这类问题很有用。分享它是因为可能需要它的人投了赞成票。感谢
文件名只能在服务器端更改,例如,在PHP脚本中,您的陈述太过确凿,不可能是真的。我最近发布了一个完整的、可重用的jQuery文件上传用户界面,它可以方便地允许用户修改文件名:
$('#fileupload').fileupload({
maxNumberOfFiles: 1,
submit: function(e, data) {
data.files[0].uploadName = 'mynewfilename.jpg';
}
});