上傳小程式分享
今天興致來的時候,寫了一個上傳檔案的程式
功能說明:
1. 一次可上傳 多個檔案,預設為10個,數目可自己調
2. 每個檔案都丟到不同的目錄,防止檔名相同時被 over write
目前以 time stamp 命名
3. 解決中文檔名許蓋功問題
code如下,有興趣可以參考看看,如果有Bug也請提出...
<?php
set_time_limit (0);
ini_set('memory_limit', '-1');
$upload_dir = 'E:/upload'; // 上傳目錄,請自行設定
if (!is_dir($upload_dir)) mkdir($upload_dir);
$max_upload_file = 10; // 上傳檔案數目
$msg = '';
if (isset($_POST['filename']) && is_array($_POST['filename']))
{
foreach ($_POST['filename'] as $num=>$name)
{
if ($name!='' && $_FILES['file']['tmp_name'][$num]!='' && is_file($_FILES['file']['tmp_name'][$num]))
{
$dest_dir = "$upload_dir/" . time();
if (!is_dir($dest_dir))
mkdir($dest_dir);
else
{
$i = 2;
while (1)
{
$new_dest_dir = "$dest_dir.$i";
if (!is_dir($new_dest_dir))
{
mkdir($new_dest_dir);
$dest_dir = $new_dest_dir;
break;
}
$i++;
}
}
$dest = "$dest_dir/$name";
if (move_uploaded_file($_FILES['file']['tmp_name'][$num], $dest))
$msg .= "<font color='red'><b>$name</b></font> 上傳成功\ <br>\n";
}
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "" rel="nofollow">http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title>上傳檔案</title>
<script language="javascript">
function submit_form(theForm)
{
var filepath;
var pos;
var len;
var filename;
for (i=0 ; i<theForm.elements['file[]'].length ; i++ )
{
filepath = theForm.elements['file[]'][i].value;
pos = filepath.lastIndexOf("\\");
len = filepath.length;
filename = filepath.substring(pos+1,len);
theForm.elements['filename[]'][i].value = filename;
}
theForm.submit();
}
</script>
</head>
<body>
<?php
if ($msg!='')
{
echo $msg;
echo '<hr>';
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" name="form1">
<?php for ($i=0; $i<$max_upload_file; $i++): ?>
<input name="file[]" type="file" size="50">
<input name="filename[]" type="hidden">
<br>
<?php endfor; ?>
<input type="button" name="Submit" value="上傳" onClick="submit_form(this.form)">
</form>
</body>
</html>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.245.58
※ 編輯: PHP5 來自: 140.112.245.58 (04/17 23:27)
推
04/20 01:29, , 1F
04/20 01:29, 1F