我需要上传多个文件,我正在使用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
,我只能获取要上传的文件的名称。我需要文件的完整路径才能将它们上传到我的服务器中。
我将不胜感激。
答案 0 :(得分:2)
你无法获得这些途径;它会侵犯用户的隐私。
File API规范说明了name
属性(强调我的):
文件名;在获取时,必须将该文件的名称作为字符串返回。不同的底层OS文件系统使用了许多文件名变体和约定; 这只是文件的名称,没有路径信息。