簡介:這是PHP使用經驗小結的詳細頁面,介紹了和php,有關的知識、技巧、經驗,和一些php源碼等。
class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=340724' scrolling='no'>
1.Apache的配置
我下載的是Apache 2.2和PHP 5.2.17(VC6 x86 Thread Safe)
註:VC6 x86 non Thread Safe版本在我機子上貌似不行。
首先將下載好的PHP解壓至C:\php,將檔案夾中的php.ini-recommend檔案改名為php.ini,找到542行左右,找到下面代碼參數:extension = "./",修改為 extension = "C:/php/ext/" ,告訴PHP擴充庫的目錄是在"C:/php/ext/"。儲存後將php.ini複製到C:\windows\php.ini。這樣做的好處是如果升級PHP版本,只需把新版本直接覆蓋到C:\php即可完成升級。
接下來,找到apache的設定檔(在../conf/httpd.conf),找到“LoadModule”一節,追加:LoadModule php5_module "C:/php/php5apache2_2.dll";找到“AddType”一節,追加:AddType application/x-httpd-php .php。再重新啟動apache服務即可。
註:如果需要修改網站目錄,可以在httpd.conf中找到DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"改為想要的目錄,同時,<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">也要修改。如果需要修改首頁,可以找到"<IfModule dir_module> DirectoryIndex index.php </IfModule>"修改為index.php等。
2.檔案的上傳
首先定義一些參數:
<?php// 上傳檔案類型列表
$uptypes = array(
'image/jpg',
'image/jpeg',
'image/png',
'image/pjpeg',
'image/gif',
'image/bmp',
'image/x-png'
);
$max_file_size = 2000000; // 上傳檔案大小限制, 單位BYTE
$destination_folder = "uploading/"; // 上傳檔案路徑?>
接下來加入表單:
<form enctype="multipart/form-data" method="post" name="upform">
上傳檔案:
<input name="upfile" type="file">
<input type="submit" value="上傳"><br>
允許上傳的檔案類型為:<?php echo implode(',',$uptypes); ?>
</form>
然後處理上傳請求:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$file = $_FILES['upfile'];
// $file中有4個元素:name,type,size,tmp_name,每個元素都是一個數組
// 是否存在檔案
if (!is_uploaded_file($file['tmp_name']))
{
echo "<font color=red>檔案上傳失敗!</font>";
exit();
}
// 檢查檔案大小
if($max_file_size < $file['size'])
{
echo "<font color=red>上傳檔案大小超過".($max_file_size/1000000)."MB限制!</font>";
unlink($file["tmp_name"]);
exit();
}
//檢查檔案類型
if(!in_array($file["type"], $uptypes))
{
echo "<font color=red>檔案類型不符!</font>";
unlink($file["tmp_name"]);
exit();
}
//建立目標檔案夾
if(!file_exists($destination_folder))
{
mkdir($destination_folder);
}
$filename = $file["tmp_name"];
$pinfo = pathinfo($file["name"]);
// pathinfo() 返回一個數組[dirname][basename][extension]
$ftype = $pinfo['extension'];
// 去掉basename的尾碼名,存在$name中
$pos = strrpos($pinfo['basename'], ".");
$name = substr_replace($pinfo['basename'], "", $pos, strlen($pinfo['basename']));
// 目標檔案名路徑
$destination = $destination_folder.$name."_".$_SERVER['REMOTE_ADDR'].".".$ftype;
if (file_exists($destination) && $overwrite != true)
{
echo "<font color=red>伺服器上已存在同名檔案,請稍候重試!</font>";
unlink($file["tmp_name"]);
exit();
}
if(!move_uploaded_file ($filename, $destination))
{
echo "<font color=red>移動檔案出錯!</font>";
exit();
}
// 擷取移動後的檔案資訊
$pinfo = pathinfo($destination);
$fname = $pinfo[basename]; // basename是不含路徑的檔案名稱
echo "<font color=red>已經成功上傳!</font><br>檔案名稱:<font color=blue>".$destination_folder.$fname."</font><br>";
echo "檔案大小:".$file["size"]." bytes";
echo "<br>提交IP:".$_SERVER['REMOTE_ADDR'];
}
?>
的
愛J2EE關注Java邁克爾傑克遜視頻站JSON線上工具
http://biancheng.dnbcw.info/php/340724.html pageNo:7