多文件上传系统
在DZ上看到的,自己论坛很需要这个功能,但试着改了一下无法正常运行--我不懂代码啊,这个也太早了,估计是和6.0代码不同...原帖:[url=http://www.discuz.net/viewthread.php?tid=68704&page=1#pid6403677]http://www.discuz.net/viewthread.php?tid=68704&page=1#pid6403677[/url]
能否帮忙修改一下啊,要么能不能考虑列入DST的开发计划啊.............在DZ等了一天了,一点回应没有,想想还是来DST碰碰运气吧--希望哪位高手能有空给看一下!!先谢谢了.
[size=4][color=magenta][b]真诚求助,希望得到帮助!![/b][/color][/size]
1、在根目录下新建一个 upload 文件夹,当然你也可以用现有的attachments文件夹,并无关系。
2、复制下面这段代码,并保存成为uploadindex.php到根目录。
<HTML>
<HEAD>
<TITLE>浙江大学后勤管理部多文件上传</TITLE>
</HEAD>
<BODY height=200 width=320>
<center><br><br><br>
<FORM ACTION="upload.php" METHOD="POST" ENCTYPE="multipart/form-data">
选择文件:<BR> <br>
<INPUT TYPE="FILE" NAME="firstfile" SIZE="50"><BR>
<INPUT TYPE="FILE" NAME="secondfile" SIZE="50"><BR>
<INPUT TYPE="FILE" NAME="thirdfile" SIZE="50"><BR>
<INPUT TYPE="FILE" NAME="fourthfile" SIZE="50"><BR>
<INPUT TYPE="FILE" NAME="fivethfile" SIZE="50"><BR> <br>
请务必选择上传文件的类型:
<select name="choose" style="font-size: 9pt">
<option value="pic">--图片--</option>
<option value="doc">--文件--</option>
</select><br><br><br>
<INPUT TYPE="SUBMIT">
</FORM>
</center>
</BODY></HTML>
这一块是上传的前台,你可以根据所需上传的文件个数,改写这段代码,并在下一段代码作相应改动就行。
3、复制下面这段代码,并保存成为upload.php到根目录。
<html>
<head>
<title>浙江大学后勤管理部多文件上传</title>
</head>
<body>
<script language=javascript>
function findobj(n, d)
{
var p,i,x; if(!d) d=document;
if((p=n.indexOf("?"))>0 && parent.frames.length)
{
d=parent.frames[n.substring(p+1)].document;
n=n.substring(0,p);
}
if(!(x=d[n])&&d.all)
{
x=d.all[n];
}
for(i=0;!x && i<d.forms.length;i++)
{
x=d.forms[i][n];
}
for(i=0;!x && d.layers&&i>d.layers.length;i++)
{
x=MM_findObj(n,d.layers[i].document);
}
return x;
}
function copycode(obj)
{
var rng = document.body.createTextRange();
rng.moveToElementText(obj);
rng.scrollIntoView();
rng.select();
rng.execCommand("Copy");
rng.collapse(false);
}
</script>
<?php
if ($choose == "pic") {
echo "<form name=he>";
echo "<br><br><br><br>";
echo "<center>图片上传程序</center><br><br>";
echo "<table><tr><td id=\"text1\">";
$uploaddir = "/Apache/htdocs/hqglb/bbs/upload/";
$uploadfile1 = $uploaddir . $_FILES['firstfile']['name'];
$uploadfile2 = $uploaddir . $_FILES['secondfile']['name'];
$uploadfile3 = $uploaddir . $_FILES['thirdfile']['name'];
$uploadfile4 = $uploaddir . $_FILES['fourthfile']['name'];
$uploadfile5 = $uploaddir . $_FILES['fivethfile']['name'];
if (move_uploaded_file($_FILES['firstfile']['tmp_name'], $uploadfile1)) {
print "[img]http://localhost/hqglb/bbs/upload/" .$_FILES['firstfile']['name']. "[/img]";
}
if (move_uploaded_file($_FILES['secondfile']['tmp_name'], $uploadfile2)) {
print "<br>[img]http://localhost/hqglb/bbs/upload/" .$_FILES['secondfile']['name']. "[/img]";
}
if (move_uploaded_file($_FILES['thirdfile']['tmp_name'], $uploadfile3)) {
print "<br>[img]http://localhost/hqglb/bbs/upload/" .$_FILES['thirdfile']['name']. "[/img]";
}
if (move_uploaded_file($_FILES['fourthfile']['tmp_name'], $uploadfile4)) {
print "<br>[img]http://localhost/hqglb/bbs/upload/" .$_FILES['fourthfile']['name']. "[/img]";
}
if (move_uploaded_file($_FILES['fivethfile']['tmp_name'], $uploadfile5)) {
print "<br>[img]http://localhost/hqglb/bbs/upload/" .$_FILES['fivethfile']['name']. "[/img]";
}
echo "</td></tr></table><br><br><br>";
echo "<input type=button value=点击复制这一块 onclick=copycode(findobj('text1'))>";
echo "</form>";
}
if ($choose == "doc") {
echo "<form name=he>";
echo "<br><br><br><br>";
echo "<center>多附件上传程序</center><br><br>";
echo "<table><tr><td id=\"text2\">";
$uploaddir = "/Apache/htdocs/hqglb/bbs/upload/";
$uploadfile1 = $uploaddir . $_FILES['firstfile']['name'];
$uploadfile2 = $uploaddir . $_FILES['secondfile']['name'];
$uploadfile3 = $uploaddir . $_FILES['thirdfile']['name'];
$uploadfile4 = $uploaddir . $_FILES['fourthfile']['name'];
$uploadfile5 = $uploaddir . $_FILES['fivethfile']['name'];
if (move_uploaded_file($_FILES['firstfile']['tmp_name'], $uploadfile1)) {
echo "[url=http://localhost/hqglb/bbs/upload/" .$_FILES['firstfile']['name']. "]附件一[/url]";
}
if (move_uploaded_file($_FILES['secondfile']['tmp_name'], $uploadfile2)) {
echo "[url=http://localhost/hqglb/bbs/upload/" .$_FILES['secondfile']['name']. "]附件二[/url]";
}
if (move_uploaded_file($_FILES['thirdfile']['tmp_name'], $uploadfile3)) {
echo "[url=http://localhost/hqglb/bbs/upload/" .$_FILES['thirdfile']['name']. "]附件三[/url]";
}
if (move_uploaded_file($_FILES['fourthfile']['tmp_name'], $uploadfile4)) {
echo "[url=http://localhost/hqglb/bbs/upload/" .$_FILES['fourthfile']['name']. "]附件四[/url]";
}
if (move_uploaded_file($_FILES['fivethfile']['tmp_name'], $uploadfile5)) {
echo "[url=http://localhost/hqglb/bbs/upload/" .$_FILES['fivethfile']['name']. "]附件五[/url]";
}
echo "</td></tr></table>";
echo "<input type=button value=COPY onclick=copycode(findobj('text2'))>";
echo "</form>";
}
?>
<br><br><center>
如果已经复制完成,那就点击我吧:<a href="javascript:closewin();"><font color="red">关闭本页</font></a>
<script language=JavaScript>
function closewin() {window.close(); return;}
</script>
<br><br>
<a href=uploadindex.php>继续上传</a>
</center>
</body></html>
看清楚其中的: $uploaddir = "/Apache/htdocs/hqglb/bbs/upload/"; 这句代码,改成你的上传目录的绝对路径,实在不知道的话,可以到网上去找一些软件可以查看的。而每一个:http://localhost/hqglb/bbs/upload/ 也都要改成你存放上传文件的目录名。
4、(1)打开templates/default/post_newthread.htm文件,并查找<input type="file" name="attach" size="20"> ,在它后面添加: <a href="javascript:">多文件上传</a>
(2)打开post.php文件,在最前面添加:
<script language="JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);}
//-->
</script>
不要括在<? ?>之间去,因为并不是php代码。
5、至此已经完成了所有工程,使用方法是:发新贴,就可以看到上传附件的旁边出现了一个“上传多附件”字样,点击它就可以上传多附件了,成功后,会显示上传后的文件名,只要点击“复制”按钮就行了,然后在发帖子的文本框里粘贴,OK?
6、需要说明的几点是:a、上传目录绝对路径一定要正确。b、上传时一定要选择上传文件类型,以使能正确的产生出文件名代码。[/i][/i]
[[i] 本帖最后由 zhenyusen 于 2007-11-29 01:32 编辑 [/i]] 为什么没人回应呢?????
页:
[1]
