index.htm
<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input name="userfile" type="file">
<input type="submit" value="上傳文件">
</form>
upload.php
<?
$f=$_FILES[jeff_img_upload];
//有沒有傳文件判斷
if ($f[error]==4){
echo("<script>alert(請選擇你要上傳的文件,謝謝!);location.href=index.htm;</script>");
}
else{
//出錯判斷
if ($f[error]){
echo "失敗,文件太大了!錯誤代碼是".$f[error];
exit;
}
//類型判斷
if (substr($f[type], 0, 5) == image) {
switch ($f[type]) {
case image/jpeg:
case image/jpg:
case image/pjpeg:
$ext = .jpg;
break;
case image/gif:
$ext = .gif;
break;
case image/png:
case image/x-png:
$ext = .png;
break;
default:
header(Content-type: text/html; charset=UTF-8);
echo("<script>alert(你傳的不是圖片吧?);location.href=index.htm;< /script>");
die(REDIRECTING...);
break;
}
}else {
header(Content-type: text/html; charset=UTF-8);
echo("<script>alert(你傳的不是圖片吧?);location.href=index.htm;</script>");
die(REDIRECTING...);
}
//生成隨機數
$randomnum=NULL;
for($j=0;$j<=5;$j++)//隨機數字的長度,本例隨機數長度為6
{
srand((double)microtime()*1000000);
$randomnumber=rand(!$j ? 1: 0,9);//產生隨機數,不以0為第一個數,有些特殊的地方0開頭被系統省略
$randomnum.=$randomnumber;
}
$dest_dir=/var/www/htdocs/upload;//設定上傳目錄
//生成日期目錄。先判斷日期目錄是否存在,不存在則創建它。
if(!file_exists(date("Ymd"))){
mkdir(date("Ymd"),0777);}
$dest=$dest_dir./.date("Ymd")./.time()._.$randomnum.$ext;//設置文件名為時間戳加上隨機數避免重復
$r=move_uploaded_file($f[tmp_name],$dest);
chmod($dest, 0777);//設定上傳的文件的屬性
}
echo "成功了,文件地址是:".$dest;
?>