Javascript 以编程方式上载文件

Javascript 以编程方式上载文件,javascript,jquery,jquery-file-upload,Javascript,Jquery,Jquery File Upload,我正在使用jQuery文件上传插件,它有一个用于以编程方式上传文件的插件。文件写道: $('#fileupload').fileupload('add', {files: filesList}); 问题是我不知道文件列表应该是什么。我尝试了以下方法,但没有成功: $('#fileupload').fileupload('add', {files: ['/Users/bob/Desktop/test.png']}); 文件列表应该是什么?引用: 第二个参数必须是具有数组或类似数组的文件或Blo

我正在使用jQuery文件上传插件,它有一个用于以编程方式上传文件的插件。文件写道:

$('#fileupload').fileupload('add', {files: filesList});
问题是我不知道文件列表应该是什么。我尝试了以下方法,但没有成功:

$('#fileupload').fileupload('add', {files: ['/Users/bob/Desktop/test.png']});
文件列表应该是什么?

引用:

第二个参数必须是具有数组或类似数组的文件或Blob对象列表作为文件属性的对象


您可以使用文件类型输入的files属性或HTML5文件API获取文件对象

有关使用FileAPI和文件输入的更多详细信息,请参阅:
文档告诉您

The second argument must be an object with an array (or array-like list) of File
or Blob objects as files property.
将文件链接到


您应该提供这些对象的数组

荒谬的示例:这很有效

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<div id="fileupload"></div>
<input class="zz" type="file" name="files[]"  multiple><br />
<input class="zz" type="file" name="files[]"  multiple><br />
<input class="zz" type="file" name="files[]"  multiple><br />
<input class="zz" type="file" name="files[]"  multiple><br /><br /><br /><br />
<input id="envoi_fax" type="submit" class="btn btn-primary start"> <i class="icon-upload icon-white"></i><span>Start upload</span>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script src="js/vendor/jquery.ui.widget.js"></script>
<script src="js/jquery.iframe-transport.js"></script>
<script src="js/jquery.fileupload.js"></script>
<script src="js/jquery.fileupload-fp.js"></script>
<script src="js/jquery.fileupload-ui.js"></script>
<script> 
$('document').ready(function () {
    var mycars = new Array();

    $('#fileupload').fileupload({
        url:'server/php/',
        dataType: 'json',
        singleFileUploads: false,
        done: function (e, data) {
            $.each(data.result, function (index, file) {
                $('<p/>').text(file.name).appendTo(document.body);
            });
        }
    });

    $('.zz').bind('change', function (e) {
        var f;
        f = e.target.files || [{name: this.value}];
        mycars.push(f[0]);
    });

    $("#envoi_fax").click(function () {
        $('#fileupload').fileupload('send', {files: mycars});
    });
});
</script>
</body> 
</html>

您可以使用文件类型输入的文件属性或HTML5文件API获取文件对象。->这正是我的问题。获取文件的相关API/语法是什么?我应该指出,由于安全问题,在没有用户选择的情况下从客户端获取文件是不可能的。我理解这一点。但是为什么要提供API呢?一旦用户提供了文件中的数据,API就提供了读取这些数据的权限。这意味着客户端代码可以对文件执行处理,如调整图像大小或解析内容,而无需发布到服务器。然后,您需要让用户选择一个文件,可以使用文件输入或拖放操作来启动该过程。您当然不能像这样从用户的计算机上载任何文件。@bazmegakapa:请看,示例:非HTTP同步请求Yes,它可以从本地运行的脚本获取文件。但是你不能用它把文件上传到远程服务器。@bazmegakapa:Hum。那么为什么要提供API呢?一些解释会更好我真的想给这5+以上的投票。我就是不知道如何创建文件列表和/或访问示例属性使用的列表。非常感谢你的例子!!我真的很想投一票,但我同意答案确实会从一些解释中受益。。每次为任何文件输入引发更改事件时,他都会通过在mycars数组中添加文件来跟踪将上载的文件,所有文件输入都有一个zz类。submit按钮envoi_fax的click事件调用fileupload小部件的send方法,并传递一个包含mycars数组的javascript对象。