【发布时间】:2016-03-03 09:03:12
【问题描述】:
我想在我的服务器上上传三个文件(.txt、.csv 和 .xml)。 .txt 和 .xml 与以下代码完美配合。只是,我无法上传 .csv 文件(没有任何浏览器!)。我得到的错误是:错误!不可用的文件类型:application/x-csv
有办法解决吗?
代码:
if (isset($_POST['Form']) && isset($_FILES['file'])) {
$types = array('xml', 'csv', 'txt');
$ftypes = array('text/xml', 'application/vnd.ms-excel', 'text/plain');
if (!in_array($_POST['Form']['type'], $types)) {
$errors[] = 'Undefined type';
} elseif (intval($_FILES['file']['size']) == 0) {
$errors[] = 'Zero file size';
} elseif (!in_array($_FILES['file']['type'], $ftypes)) {
$errors[] = 'Unavailable file type: ' . $_FILES['file']['type'];
} else {
$parent_id = intval($_POST['Form']['parent']);
switch ($_POST['Form']['type']) {
case 'xml':
if ($_FILES['file']['type'] != 'text/xml')
$errors[] = "Choosen type and file mime-type doesn't match";
else {
require_once(__DIR__ . '/parsers/xml.php');
}
break;
case 'csv':
if ($_FILES['file']['type'] != 'application/vnd.ms-excel')
$errors[] = "Choosen type and file mime-type doesn't match";
else {
require_once(__DIR__ . '/parsers/csv.php');
}
break;
case 'txt':
if ($_FILES['file']['type'] != 'text/plain')
$errors[] = "Choosen type and file mime-type doesn't match";
else {
require_once(__DIR__ . '/parsers/txt.php');
}
break;
}
}
}
?>
【问题讨论】: