預備知識:Javascript, PHP(少量)/Perl(少量)!
測試環境:Windows2000 IIS5 PHP (Win98 PWS PHP3 失敗,估計是配置出了問題)
目錄結構:
/wwwroot/cgi-bin/fileup.php (文件接收)
/wwwroot/www/test/phpfileup.htm (文件提交)
/wwwroot/www/test/tmp/ (默認保存目錄)
前言:文件上傳,簡單又麻煩。下面是上傳文件的提交頁面,利用該頁面你不僅可以生成 1000 個上傳文件框(實際是任意多個 0~n ),而且可分別指出它們的保存路徑。
提交頁面的文件輸入框為命名為: file0,file1,...file100,...fileN
提交頁面的文件路徑框為命名為: path0,path1,...path100,...pathN
由於頁面的生成非常簡單,所以就不在此多解釋了,用 javascript 定義了兩個函數,check() 用於提交頁面,create()用於生成文件上傳框。假如你有什麼更好的建議或有什麼疑問請 Email: [email protected]
phpfileup.htm
--------------------------------------------------------
<html>
<head>
<title></title>
<style>
.lbtn {font-family:verdana;font-size:10.5pt;}
.ist {font-family:verdana;font-size:14.8px;size:400}
</style>
<script LANGUAGE="javascript">
function check(){
document.frm1.submit();
document.body.innerHTML="Uploading Please wait!";
}
var i=0;
function create(){
var sfrm = document.frm1.innerHTML;
var icnt = cnt.value;
for(j=0;j<icnt;j )
{
sfrm = sfrm "請選擇文件 " i " <input type=file name='file" i "' class=ist>";
sfrm = sfrm " 路徑:<input type=text name='path" i "' value='../www/test/tmp/' class=ist>";
sfrm = sfrm "<br>";
i ;
}
document.frm1.innerHTML = sfrm;
document.frm1.cnt.value=i;
}
</script>
</head>
<body class=lbtn onload="document.frm1.cnt.value=cnt.value;">
請輸入要上傳文件的數量: <input type=text name=cnt value="10" class=ist onchange="document.frm1.cnt.value=this.value;">
<input type=button name=bt1 value="生成上傳文件框" onclick="create();" class=lbtn>
<input type=button name=bt1 value="上傳" onclick="check();" class=lbtn>
<input type=button name=bt1 value="清除" onclick="document.location.reload();" class=lbtn>
<form name=frm1 method="post" Enctype="multipart/form-data" action="../../cgi-bin/fileup.php">
<input type=hidden name=cnt value="20" class=ist>
</form>
<input type=button name=bt1 value="上傳" onclick="check();" class=lbtn>
<input type=button name=bt1 value="清除" onclick="document.location.reload();" class=lbtn>
</body>
</html>
文件提交頁面既已生成,下面任務就很明確了:將提交的文件內容保存到服務器上。