多次文件上传只添加一个文件
Multiple file upload adds only one file
我试图用php达到多个文件/图像上传,但我得到的只是我的上传文件夹中的一个文件,表单是由ajax发送的。这是我的代码:
<input type='file' id='_file' multiple="multiple" name="SelectedFile[]">
<input type='button' id='_submit' value='Upload!'>
PHP 和
<?php
// Output JSON
function outputJSON($msg, $status = 'error'){
header('Content-Type: application/json');
die(json_encode(array(
'data' => $msg,
'status' => $status
)));
}
$count = 0;
...
// Success!
foreach ($_FILES['SelectedFile']['name'] as $f => $name) {
outputJSON('File uploaded successfully to "' . 'upload/' . $_FILES['SelectedFile']['name'][0] . '".', 'success');
$count ++;
}
JS
var data = new FormData();
data.append('SelectedFile', _file.files[0]);
var request = new XMLHttpRequest();
request.onreadystatechange = function(){
if (request.readyState == 4){
try {
var resp = JSON.parse(request.response);
} catch (e){
var resp = {
status: 'error',
data: 'Unknown error occurred: [' + request.responseText + ']'
};
}
console.log(resp.status + ': ' + resp.data);
}
};
request.upload.addEventListener('progress', function(e){
_progress.style.width = Math.ceil(e.loaded/e.total) * 100 + '%';
}, false);
request.open('POST', 'upload.php');
request.send(data);
我还有Unknown error occurred: []
从outputJSON
函数中删除die
调用并使用echo
代替,它在foreach
的第一个循环中终止脚本。
更新:
假设文件被正确上传并存储在$_FILES
数组中,该代码输出应该可以被js解析:
header('Content-Type: application/json');
$output = array();
foreach ($_FILES['SelectedFile'] as $f => $file) {
$output []= array(
'data' => 'File uploaded successfully to "' . 'upload/' . $file['name'],
'status' => 'success',
);
}
echo json_encode($output);
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 我应该如何从xml文件构建一个javascript页面
- Sails.js:同时发布文本输入和一个文件
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- 要求定义另一个文件中的对象
- 是否可以使用JavaScript/AAJAX在客户端创建一个文件
- SuiteScript2.0-包括一个自定义文件
- 有没有办法在tinymceiframe中加载一个外部javascript文件
- 如何将变量传递到另一个js文件
- 如何将所有JS文件连接到一个文件夹中
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- 如何用javascript发送多个文件没有jQuery我想要每个文件一个进度条
- 我正在尝试一个接一个地播放一个 mp3 文件(一个作为介绍),但它不起作用.我该怎么做
- Jquery结构-每个文件一个函数
- 如何将文件一个接一个地上传到谷歌驱动器使用谷歌应用程序脚本
- 将多个链接从txt文件一个接一个地插入到一个iframe中