尝试使用PHP将文件上传到服务器,但它总是转换为.jpg格式

Don*_*ama 0 php

我正在尝试制作一个上传文件功能,允许用户上传图像,视频和压缩文件(.rar)并自动重命名该文件,以防止上传的文件同名并互相替换.

但是当我尝试逐个上传时,上传的所有内容都会转换为.jpg格式.

有谁可以帮助我吗 ?

这是我的脚本:

function reArrayFiles(&$file_post) {

$file_ary = array();
$file_count = count($file_post['name']);
$file_keys = array_keys($file_post);

for ($i=0; $i<$file_count; $i++) {
    foreach ($file_keys as $key) {
        $file_ary[$i][$key] = $file_post[$key][$i];
    }
}

return $file_ary;
}


if ($_FILES['upload']) {
    $file_ary = reArrayFiles($_FILES['upload']);

foreach ($file_ary as $file) {
  echo "<p>";
    print 'File Name: ' . $file['name'] . '<br />';
    print 'File Type: ' . $file['type'] . '<br />';
    print 'File Size: ' . $file['size'] . '<br />';
    print 'File Temp: ' . $file['tmp_name'] . '<br />';
  echo "</p>";

  if ($file['type'] == 'jpg' || 'jpeg') {
    $newname = date('YmdHis',time()).mt_rand().'.jpg';
    $dir = 'upload/images/'.$newname;
    move_uploaded_file($file['tmp_name'], $dir);
  }

  if ($file['type'] == 'mp4') {
    $newname_video = date('YmHis',time()).mt_rand().'.mp4';
    $dir2          = 'upload/videos/'. $newname_video;
    move_uploaded_file($file['tmp_name'], $dir2);
  }

  if ($file['type'] == 'rar') {
    $newname_other = date('YmHis',time()).mt_rand().'.rar';
    $dir3          = 'upload/others/'. $newname_other;
    move_uploaded_file($file['tmp_name'], $dir3);
  }
}
}
Run Code Online (Sandbox Code Playgroud)

man*_*ica 5

if ($file['type'] == 'jpg' || 'jpeg') {

被评估为:

if (($file['type'] == 'jpg') || ('jpeg')) {

并且非空字符串的计算结果为true,因此如果总是通过则.

将其更改为:

if (($file['type'] == 'jpg') || ($file['type'] == 'jpeg')) {

它应该按预期工作.