17DST→一起创造价值's Archiver

zhenyusen 发表于 2007-11-29 01:30

多文件上传系统

在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]]

zhenyusen 发表于 2007-11-29 13:25

为什么没人回应呢?????

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.