多个文件输入实现

时间:2017-01-23 16:10:30

标签: php jquery materialize

我需要上传多个文件,我正在使用materializecss,它可以让您选择在一个输入中上传多个文件:

<div class="row">
    <form class="col s12">
        <div class="file-field input-field">
            <div class="btn">
                <span>Browse</span>
                <input type="file" multiple>
            </div>
            <div class="file-path-wrapper">
                <input type="text" name="pictures" class="file-path validate" type="text" placeholder="Upload multiple files">
            </div>
        </div>    
    </form>
</div>

materialize.js 执行以下操作:

$(document).on('change', '.file-field input[type="file"]', function () {
    var file_field = $(this).closest('.file-field');
    var path_input = file_field.find('input.file-path');
    var files      = $(this)[0].files;      
    var file_names = [];
    for (var i = 0; i < files.length; i++) {
        file_names.push(files[i].name);
    }
    path_input.val(file_names.join(", "));
    path_input.trigger('change');
});

所以,通过$_POST,我只能获取要上传的文件的名称。我需要文件的完整路径才能将它们上传到我的服务器中。

我将不胜感激。

1 个答案:

答案 0 :(得分:2)

你无法获得这些途径;它会侵犯用户的隐私。

File API规范说明了name属性(强调我的):

  

文件名;在获取时,必须将该文件的名称作为字符串返回。不同的底层OS文件系统使用了许多文件名变体和约定; 这只是文件的名称,没有路径信息。