将映像移动到特定目录


Move the images to specific directory

    $fileType_array = array(IMAGETYPE_JPEG, IMAGETYPE_PNG);
$filenames = array($thumbnail_fieldname, $desktop_fieldname_1280x800, $desktop_fieldname_1366x768, $desktop_fieldname_1920x1080);
        $files = array();
        foreach($filenames as $filename){
            if(isset($_FILES[$filename]['tmp_name'])){
                $resource = getimagesize($_FILES[$filename]['tmp_name']);
                $type = $resource[2];
                if(in_array($type, $fileType_array, TRUE)){
                    echo "<p>Following files are images:";
                    array_push($files, $filename);
                    //$files[$filename] = $filename . "<br />"; 
                }
            }

这段代码给了我作为图像的文件,我想做的是将这些图像移动到适当的文件夹中。例如,对于文件的缩略图thumbnail.png,我想将此文件移动到images/thumbnails/thumbnail.png文件夹中。我该怎么做?我认为有move_uploaded_file但不确定如何,因为如果特定文件不是图像,请离开它并移动到下一个文件。例如,下一个文件desktop1280x800不是图像,因此它将跳过并移动到下一个桌面文件以将其移动到目录(如果它是图像)。所以我不能按顺序完成我猜..下面是移动这些文件的代码,我只想移动特定的文件而不是全部

    if(move_uploaded_file($_FILES[$thumbnail_fieldname]['tmp_name'], $thumbnail_filename)
            //move desktop files
            && in_array(TRUE, array(
                move_uploaded_file($_FILES[$desktop_fieldname_1280x800]['tmp_name'], $desktop_filename_1280x800),
                move_uploaded_file($_FILES[$desktop_fieldname_1366x768]['tmp_name'], $desktop_filename_1366x768),
                move_uploaded_file($_FILES[$desktop_fieldname_1920x1080]['tmp_name'], $desktop_filename_1920x1080)))){
 //Files moved.
}
 $type = $_FILES[$desktop_fieldname_1280x800]['type'];
 if(strpos($type, 'image') !== false)
 {
   //code
 }

另类

$filename_parts = explode('.', $_FILES[$desktop_fieldname_1280x800]['tmp_name']);
$ext = strtolower(end($filename_parts));
$autorized = array('png', 'jpeg', 'jpg', 'gif', 'bmp' ); // ...
if(in_array($ext, $autorized))
{
 //code
}

或两者兼而有之。

编辑

  $fileType_array = array('image/jpeg', 'image/png');
  $filenames = array('test');
    $path_image = 'path/to/';
    foreach($filenames as $filename){
        if(isset($_FILES[$filename]['tmp_name'])){
            $type = $_FILES[$filename]['type'];
            if(in_array($type, $fileType_array)){
                 $name = $_FILES[$filename]["name"];
                 if(move_uploaded_file($_FILES[$filename]['tmp_name'], $path_image.$name)){
                    echo 'File moved';
                 }
                 else
                 {
                    echo 'Error';
                 }
            }
            else
            {
                echo 'File is not an image or format is not accepted';
            }
        }
  }
 ?>
    <form method='POST' action='index.php' enctype='multipart/form-data'>
     <input type='file' name='test' />
     <input type='submit' value='go' />
     </form>