【发布时间】:2015-05-29 18:57:22
【问题描述】:
我正在尝试使用jquery file upload 插件和 ruby on rails 来上传文件。以下是我的目标。
可以拖放多个文件
我一次只能发送一个文件。我有 10 个文件意味着插件应该用文件名 filedata 一个一个地发送。
选择文件后,可以在发送到服务器之前将其删除。
它应该显示文件上传进度
但是使用示例代码,当我尝试拖放文件时,它只会向服务器发送一个文件,并且不会在 filePreview 中显示文件名。如果启用了自动上传,它将发送所有选定的文件。但它仍然没有在文件预览中显示文件名。要删除选定的文件,我收到了来自 here 的建议。但是在单击开始上传按钮后,我收到了 javascript 错误。它说“ncaught TypeError:无法读取未定义的属性'大小'”。请帮助解决这个问题。提前致谢。
示例代码在这里。
<%= javascript_include_tag 'application/jquery.ui.widget' %>
<%= javascript_include_tag 'application/jquery.iframe-transport' %>
<%= javascript_include_tag 'application/jquery.fileupload' %>
<script type="text/javascript">
$('#filedata').fileupload({
options: {
singleFileUploads: false,
sequentialUploads: true,
autoUpload: false,
dropZone: $('#file-form')
},
change: function (ev, data) {
$.each(data.files, function (index, file) {
alert('Selected file: ' + file.name);
alert('Selected file size: ' + file.size);
$("#filePreview").append(
$('<span>').text(file.name)
.append('<a class="removeButton" href="#"> <img src="/oldimages/note_deletebut.png"/> </a>')
.attr('id', 'fileSpan')
.append($('<br>'))
);
});
},
add: function (e, data) {
$(".removeButton").click(function() {
$(this).parent().remove();
data.files.splice(0,1); //To test
});
$("#triggerUpload").off('click').on('click',function () {
data.submit();
});
},
formData: {
},
url: "URL",
done: function (e, data) {
console.log("success")
console.log(data.result)
}
});
</script>
<form id="file-form" enctype="multipart/form-data" method="post" name="fileinfo">
<div class="upload-droparea fnt6c"> Drop files here<br>or <br>
<span class="btn btn-default orngbtn lesbtn filesbg uplod-btn">
<span>Select Files</span>
<input type="file" id="filedata" name="filedata" multiple>
</span>
</div>
<div id="filePreview"></div>
<button id="triggerUpload" value="Start Upload" class="btn btn-default orngbtn lesbtn filesbg" type="button">Start Upload
</button>
<button data-dismiss="modal" id="cancelUpload" value="Cancel" class="btn btn-default orngbtn lesbtn filesbg" type="button">Cancel</button>
</form>
【问题讨论】: