我尝试在表单中使用一些文件输入来上传几种不同的文件类型,当单击提交按钮时,文件中的多个文件存储在mysql表中。 问题是当点击sumbit时它会显示一个错误:"警告:in_array()最多需要3个参数,在...."中给出5。当我使用一个输入文件时,该文件已成功上传到服务器文件夹。 这是我使用的代码:
$dir = $name;
$target_dir = "my-file/$dir/";
if( is_dir($target_dir) === false )
{
mkdir($target_dir);
}
if(isset($_POST["submit"])) {
$formatfilea = array("pdf");
$formatfileb = array("pdf");
$formatfilec = array("pdf");
$formatfiled = array("jpg, jpeg");
$filea = $_FILES['filea']['name'];
$fileb = $_FILES['fileb']['name'];
$filec = $_FILES['filec']['name'];
$filed = $_FILES['filed']['name'];
$xa = explode('.', $filea);
$xb = explode('.', $fileb);
$xc = explode('.', $filec);
$xd = explode('.', $filed);
$existencea = strtolower(end($xa));
$existenceb = strtolower(end($xb));
$existencec = strtolower(end($xc));
$existenced = strtolower(end($xd));
$sizea = $_FILES['filea']['size'];
$sizeb = $_FILES['fileb']['size'];
$sizec = $_FILES['filec']['size'];
$sized = $_FILES['filed']['size'];
$file_tmp_a = $_FILES['filea']['tmp_name'];
$file_tmp_b = $_FILES['fileb']['tmp_name'];
$file_tmp_c = $_FILES['filec']['tmp_name'];
$file_tmp_d = $_FILES['filed']['tmp_name'];
if(in_array($existencea, $formatfilea && $existenceb, $formatfileb && $existencec, $formatfilec && $existenced, $formatfiled) === true){
if($sizea < 1044070 && $sizeb < 1044070 && $sizec < 1044070 && $sized < 1044070){
move_uploaded_file($file_tmp_a, $target_dir.$filea);
move_uploaded_file($file_tmp_b, $target_dir.$fileb);
move_uploaded_file($file_tmp_c, $target_dir.$filec);
move_uploaded_file($file_tmp_d, $target_dir.$filed);
} else {
}
}
}
// attempt insert query execution
$sql = "INSERT INTO test (filea, fileb, filec, filed) VALUES ('$filea', '$fileb', '$filec', '$filed')";
有谁可以帮我提供解决方案?是什么导致这个错误?为什么我在文件服务器上找不到上传的文件?
答案 0 :(得分:2)
您应该参考in_array()的语法。它接受至少两个参数。
if (in_array($existencea, $formatfilea, true) && in_array($existenceb, $formatfileb, true) && in_array($existencec, $formatfilec, true) && in_array($existenced, $formatfiled, true)) {
首先是你要找的那个。
第二个是数组。
第三个参数是可选的。如果要使用严格检查,则可以将其设置为true,以便它也检查类型。
您只需要以这种方式编写if语句:
this.$http.get
注意:将第三个参数设置为true将增强您的代码。
请参阅第二个示例:in_array() strict checking
答案 1 :(得分:1)
替换
if(in_array($existencea, $formatfilea && $existenceb, $formatfileb && $existencec, $formatfilec && $existenced, $formatfiled) === true){
与
if (in_array($existencea, $formatfilea) && in_array($existenceb, $formatfileb) && in_array($existencec, $formatfilec) && in_array($existenced, $formatfiled)) {