PHP注意:数组到字符串的转换和不支持的操作数类型


PHP Notice : Array to string conversion in and Unsupported operand types in

我似乎弄不明白。我写了一个PHP脚本,我不断得到一个数组到字符串转换…第7行不支持的操作数类型在第14行注意当尝试上传多个文件时出现错误。

HTML代码:
<form class="form-horizontal" action="uploadgambar.php" method="post" enctype="multipart/form-data" multiple>
<div class="form-group form-group-md">
  <label class="col-sm-2 control-label" for="sm">Username</label>
  <div class="col-sm-4">
    <input class="form-control" type="text" name="username" id="sm" value="<?php echo $_SESSION['username']; ?>" readonly>
  </div>
</div>
<div class="form-group form-group-md">
  <label class="col-sm-2 control-label" for="sm">Nama Gambar/Foto</label>
  <div class="col-sm-4">
    <input class="form-control" type="text" name="nama" id="sm" placeholder="Nama Gambar/Foto" required>
  </div>
</div>
<div class="form-group form-group-md">
  <label class="col-sm-2 control-label" for="sm">File</label>
  <div class="col-sm-4">
    <input class="form-control" type="file" name="file[]" id="sm" placeholder="Keterangan" multiple="multiple" required>
  </div>
</div>

PHP代码:
$nama = $_POST['nama'];
$username = $_POST['username'];
$file = rand(1000,100000)."-".$_FILES['file']['name'];  <- Line 7
$file_loc = $_FILES['file']['tmp_name'];
$file_size = $_FILES['file']['size'];
$file_type = $_FILES['file']['type'];
$folder="../admin/gambar/";
$new_size = $file_size/1024; <- Line 14

谢谢。

$nama = $_POST['nama'];
$username = $_POST['username'];
foreach ($_FILES['file']['name'] as $name){
   $file = rand(1000,100000)."-".$name;  
   $file_loc = $_FILES['file']['tmp_name'];
   $file_size = $_FILES['file']['size'];
   $file_type = $_FILES['file']['type'];
   $folder="../admin/gambar/";
  $new_size = $file_size/1024; 
}

This

$_FILES['file']['name']

不是字符串。你必须循环这个来获得你需要的值,以便将它附加到rand(1000,100000)."-".

对于$file_size,它是相同的

我建议你这样循环:

foreach($_FILES['file']['name'] as $k => $item) {
    $fileInfo[$k]['file'] = rand(1000,100000)."-".$item['name'][$k];  
    $fileInfo[$k]['file_loc'] = $item['tmp_name'];
    $fileInfo[$k]['file_size'] = $item['size'];
    $fileInfo[$k]['file_type'] = $item['type'];
    $fileInfo[$k]['folder']= "../admin/gambar/";
    $fileInfo[$k]['new_size'] = $item['size']/1024;
}

例子:像这样访问第三个文件类型:

$fileType = $fileInfo[2]['filetype'];