$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>