2009年12月10日 星期四

簡單後端控制之檔案上傳

簡單後台控制之檔案上傳
(WINDOWS)
================================
原由:
主要是從老師那邊拿到了一個空間
也就是拿到一台電腦的掌控權
不過卻很難控制(學校裡面防護多多)
都只能以遠端控制的方法
要傳檔案只有慢慢慢
所以就乾脆寫了一個簡單的PHP上傳的程式
顆顆顆~~
================================
功能
可以瀏覽整台電腦
可以在指定位置上傳檔案(就是當下瀏覽的位置)
可以覆蓋已經存在的檔案
應該可以中文(要以BIG5,看電腦是甚麼編碼吧)
================================
警告
此程式很危險,最好不要亂放
要記得加上防護,EX帳號密碼認證等等

================================
PHP程式碼
================================

<?php

$localhost = 'http://localhost/';//這邊要改成實際網址初目錄

//$path = 'http://xxx.xxx.xxx.xxx/';

$path = $wwwpath = 'c:\\wamp\\www\\';//對電腦來說放網站的實際位置

//$path = 'c:\\apache\\htdocs\\';

//路徑變好看用

if(isset($_GET['path'])){

$path = $_GET['path'];

$temp = $path = explode('\\',$path);

foreach($temp as $a => $b){

if($b == '..'){

unset($path[($a+1)]);

unset($path[($a)]);

$path[($a-1)] = '';

}

}

$path = implode('\\',$path);

}

//上傳用

if(isset($_POST['submit'])){

if($_FILES['file']['error'] > 0){

switch($_FILES['file']['error']){

case 1 : die("檔案大小超出 php.ini:upload_max_filesize 限制");

case 2 : die("檔案大小超出 MAX_FILE_SIZE 限制");

case 3 : die("檔案僅被部分上傳");

case 4 : die("檔案未被上傳");

}

}else{

if(is_uploaded_file($_FILES['file']['tmp_name'])){

$DestDIR = $path;

if(!is_dir($DestDIR) || !is_writeable($DestDIR))

die("目錄不存在或無法寫入");

//$File_Extension = explode(".", $_FILES['file']['name']);

//$File_Extension = $File_Extension[count($File_Extension)-1];

//$ServerFilename =date("YmdHis") . "." . $File_Extension;

$ServerFilename = $_FILES['file']['name'];

copy($_FILES['file']['tmp_name'] , $DestDIR . "/" . $ServerFilename );

echo $ServerFilename."<br>";

echo $DestDIR."<br>";

echo 'SUCCESS'."<br>" ;

}

}

}

//瀏覽用

$opdir = dir($path);

while($entry = $opdir->read()){

if(is_dir($path.$entry) && $entry != '.'){

echo '<a href = "dealfile.php?path='.$path.$entry.'\\" >'.$entry.'</a> <br />';

}elseif(!is_dir($path.$entry)){

if(strstr($path.$entry,$wwwpath)){

$url = str_replace($wwwpath,$localhost,$path.$entry);

echo '<a href = "'.$url.'" >'.$entry.'</a> <br />';

}else{

echo $entry.'<br />';

}

}

}

$opdir->close();

?>

</p>

<form action="dealfile.php?<?php echo 'path='.$path.$entry ; ?>" method="post" enctype="multipart/form-data" name="form1"

id="form1">

<input type="file" name="file" />

<input name="MAX_FILE_SIZE" type="hidden" id="MAX_FILE_SIZE" value="2000000" />

<input type="submit" name="submit" value="upload" />

</form>

沒有留言:

張貼留言