我有一个在PHP上传文件的功能,如:
function upload_file($folder,$name)
{
$dest = "../product/". $folder."/". $name;
$src = $_FILES['image']['tmp_name'];
if (move_uploaded_file($src, $dest)) {
} else {
echo "<script> alert('" . $src . "');
window.history.go(-1); </script>\n";
exit();
}
}
当我只调用一次upload_file('small','abc.jpg')
函数时,它工作得很好但是
我有两次打电话:
upload_file('small','abc.jpg')
upload_file('big','abc.jpg')
它不适用于第二个文件夹'big'
任何解决方案?
答案 0 :(得分:1)
move_uploaded_file
已移至第一个目的地。
因此,解决方案是获取第一个目标路径,并将其与另一个路径一起复制。
这将是很多解决方案。其中之一,将param更改为数组并迭代它。
<?php
$filesDes = array(
array('folder'=>'small','name'=>'abc.jpg'),
array('folder'=>'big','name'=>'abc.jpg'));
function upload_file($arrayfile)
{
$firstfile = null;
foreach($arrayfile as $val)
{
$dest = "../product/". $val['folder']."/". $val['name'];
if(!isset($firstfile))
{
$firstfile = $dest;
$src = $_FILES['image']['tmp_name'];
if (!move_uploaded_file($src, $dest)) {
echo "<script> alert('" . $src . "');
window.history.go(-1); </script>\n";
exit();
}
}
}
else
{
if(!copy ( $firstfile , $dest ))
{
echo "<script> alert('" . $dest . "');
window.history.go(-1); </script>\n";
exit();
}
}
}
upload_file($filesDes)