繁体   English   中英

jQuery文件上传,只有单个图像并在上传前重命名

[英]jQuery File Upload, only single image and rename before uploading

我正在使用JQuery文件上传插件

我想限制上传到一个图像,并替换是否选择了另一个图像,并在上传到服务器之前重命名。我的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

但没有成功。

我意识到这是很久以前的问题,但是当其他工具如DropzoneJS在将文件名发送到服务器之前有办法改变文件名时,另一个回答是不完整的答案。 在搜索源代码之后,事实证明jQuery文件上传也具备该功能。

在jQuery文件上传submit事件回调或在调用data.submit()之前的任何时候,修改files数组并设置uploadName 例如:

$('#fileupload').fileupload({
    maxNumberOfFiles: 1,
    submit: function(e, data) {
        data.files[0].uploadName = 'mynewfilename.jpg';
    }
});

虽然浏览器控制的File对象上的name属性是只读的,但这并不会阻止定义新属性。 jQuery文件上传发送uploadName如果存在),否则返回name

当然,这里没有任何内容排除了验证传入数据的服务器端职责,但它确实表明可以更改jQuery文件上传发送到服务器的文件名。

出于安全原因,客户端javascripts无法控制此情况。 上传后,您可以在服务器上重命名该文件。

这里给出的类似问答文件重命名用户上传javascript的文件

最佳做法是在服务器端重命名文件,例如在PHP脚本中

您可以使用maxNumberOfFiles选项限制文件

$('#fileuploadbasic').fileupload({
    maxNumberOfFiles: 1
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM