function getExtension($str) {
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}
define ("MAX_SIZE","2000");
if( isset($_FILES['file_upload']))
{
$errors=0;
$image=$_FILES['file_upload']['name'];
if ($image)
{
$filename = stripslashes($_FILES['file_upload']['name']);
$extension = getExtension($filename);
$extension = strtolower($extension);
if (($extension != "jpg") && ($extension != "bmp") && ($extension != "png") && ($extension != "gif"))
{
echo '<h1>Unknown extension!</h1>';
$errors=1;
}
else
{
$size=filesize($_FILES['file_upload']['tmp_name']);
if ($size > MAX_SIZE*1024)
{
echo '<h1>You have exceeded the size limit!</h1>';
$errors=1;
}
$random_name=md5(uniqid(mt_rand(), true)).'.'.$extension;
$from=$_FILES['file_upload']['tmp_name'];
$newname='"temp_images/'.$random_name.'"';
rename($from, $newname); Problm is here?????
//move_uploaded_file($from, $newname); Even tried this
}
}
}
我不知道为什么图像没有在temp_images文件夹中移动。任何人都可以帮助我。提前谢谢。
编辑:
HTML表格:
<form name="form_upload" action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data">
<table class='nryo_modal_div_table' align='center'>
<tr>
<td align='left' class='response_color_ok'>
Select File:
</td> </tr> <tr>
答案 0 :(得分:1)
确保 temp_images 文件夹具有写入权限; chmod到755。
还要确保在用于上传图片的表单上指定了 enctype = multipart 。
答案 1 :(得分:0)
您可能想尝试使用move_uploaded_file功能而不是重命名功能。如sarfraz所述,还要检查 temp_images 文件夹是否设置了适当的权限。
这是我通常做的事情:
if(move_uploaded_file($_FILES['file_upload']['tmp_name'], $newname)) {
//move okay
}else{
//move not okay
}
要以编程方式更改文件夹的权限,请查看PHP函数chmod()