查看: 6297|回复: 8

[问与答] 麻烦你给我帮个忙。。。

[复制链接]
中国梦 发表于 2015-1-23 16:51:52 | 显示全部楼层 |阅读模式
  1. <%@ language="javascript"%>
  2. <%
  3. var self = Request.serverVariables("SCRIPT_NAME");
  4. if (Request.serverVariables("REQUEST_METHOD")=="POST")
  5. {
  6.         var oo = new uploadFile();
  7.         oo.path = "album";                        //存放路径,为空表示当前路径,默认为uploadFile
  8.         oo.named = "file";                        //命名方式,date表示用日期来命名,file表示用文件名本身,默认为file
  9.         oo.ext = "all";                                //允许上传的扩展名,all表示都允许,默认为all
  10.         oo.over = true;                                //当存在相同文件名时是否覆盖,默认为false
  11.         oo.size = 1*1024*1024;                //最大字节数限制,默认为1G
  12.         oo.upload();
  13.         Response.write('<script type="text/javascript">location.replace("'+self+'")</script>');
  14. }

  15. //ASP无组件上传类
  16. function uploadFile()
  17. {
  18.     var bLen = Request.totalBytes;
  19.     var bText = Request.binaryRead(bLen);
  20.     var oo = Server.createObject("ADODB.Stream");
  21.     oo.mode = 3;
  22.         this.path = "uploadFile";
  23.         this.named = "file";
  24.         this.ext = "all";
  25.         this.over = false;
  26.         this.size = 1*1024*1024*1024;        //1GB

  27.         //文件上传        
  28.         this.upload = function ()
  29.         {
  30.                 var o = this.getInfo();
  31.                 if (o.size>this.size)
  32.                 {
  33.                         alert("文件过大,不能上传!");
  34.                         return;               
  35.                 }
  36.                 var f = this.getFileName();
  37.                 var ext = f.replace(/^.+\./,"");
  38.                 if (this.ext!="all"&&!new RegExp(this.ext.replace(/,/g,"|"),"ig").test(ext))
  39.                 {
  40.                         alert("目前暂不支持扩展名为 "+ext+" 的文件上传!");
  41.                         return;
  42.                 }
  43.                 if (this.named=="date")
  44.                 {
  45.                         f = new Date().toLocaleString().replace(/\D/g,"") + "." + ext;
  46.                 }

  47.                 oo.open();
  48.                 oo.type = 1;
  49.                 oo.write(o.bin);
  50.                 this.path = this.path.replace(/[^\/\\]$/,"/");
  51.                 var fso = Server.createObject("Scripting.FileSystemObject");
  52.                 if(this.path!=""&&!fso.folderExists(Server.mapPath(this.path)))
  53.                 {
  54.                         fso.createFolder(Server.mapPath(this.path));
  55.                 }
  56.                 try
  57.                 {
  58.                         oo.saveToFile(Server.mapPath(this.path+f),this.over?2:1);
  59.                         alert("上传成功!");
  60.                 }
  61.                 catch(e)
  62.                 {
  63.                         alert("对不起,此文件已存在!");
  64.                 }
  65.                 oo.close();
  66.                 delete(oo);

  67.         }

  68.         //获取二进制和文件字节数
  69.         this.getInfo = function ()
  70.         {
  71.                 oo.open();
  72.                 oo.type=1;
  73.                 oo.write(bText);
  74.                 oo.position = 0;                                
  75.                 oo.type=2;
  76.                 oo.charset="unicode";
  77.                 var gbCode=escape(oo.readText()).replace(/%u(..)(..)/g,"%$2%$1");
  78.                 var sPos=gbCode.indexOf("%0D%0A%0D%0A")+12;
  79.                 var sLength=bLen-(gbCode.substring(0,gbCode.indexOf("%0D%0A")).length/3)-sPos/3-6;
  80.                 oo.close();
  81.         
  82.                 oo.open();
  83.                 oo.type = 1;        
  84.                 oo.write(bText);
  85.                 oo.position=sPos/3;
  86.                 var bFile=oo.read(sLength);
  87.                 oo.close();
  88.                
  89.                 return { bin:bFile, size:sLength };
  90.         }

  91.         //获取文件名        
  92.         this.getFileName = function ()
  93.         {
  94.                 oo.open();
  95.                 oo.type = 2;
  96.                 oo.writeText(bText);
  97.                 oo.position = 0;
  98.                 oo.charset = "gb2312";
  99.                 var fileName = oo.readText().match(/filename="(.+?)"/i)[1].split("\").slice(-1)[0];
  100.                 oo.close();
  101.                 return fileName;
  102.         }
  103.         
  104.         function alert(msg)
  105.         {
  106.                 Response.write('<script type="text/javascript">alert("'+msg+'");</script>');
  107.         }
  108. }
  109. %>
  110. <html>
  111. <head>
  112. <title>ASP无组件上传类</title>
  113. <meta http-equiv="content-Type" content="text/html; charset=utf-8">
  114. </head>
  115. <body>
  116. <form action="<%=self%>" method="post" enctype="multipart/form-data" onSubmit="return (this.upFile.value!='');">
  117.     <input type="file" name="upFile"/>
  118.     <input type="submit" value="上传文件"/>
  119. </form>
  120. </body>
  121. </html>
复制代码
以上代码是我现在用的上传图片代码 , 可是上传完了就还会主页。。有些图片的名字非常乱。。。要一个一个来打字麻烦。。。
麻烦你把这个改到 : 上传成功了以后回到另一个页面比如说001.asp 或者是Html什么的 。 然后那个页面里做一个表格,这里显示文件路径。。(../album/XXX.jpg)等。。。

求你们了,大神。。。。谢谢
结局 发表于 2015-1-23 17:03:00 | 显示全部楼层
把你程序完整打包给我,包括数据库。可以私信网盘下载地址,或直接发我们官方邮箱 support@ttasp.com
 楼主| 中国梦 发表于 2015-1-23 17:15:24 | 显示全部楼层
回复 2# 结局
老大啊。。。给你也看不懂啊 。。。tuprak.com/music    这就是完整的上传页面。。。
 楼主| 中国梦 发表于 2015-1-23 17:17:15 | 显示全部楼层
你把这个代码复制一下然后保存一个00.asp上传到你的空间 , 然后创建个album文件夹就可以上传。。。无组件上传代码这是。。。
ttasp 发表于 2015-1-23 23:40:25 | 显示全部楼层
本帖最后由 ttasp 于 2015-1-23 23:41 编辑
你把这个代码复制一下然后保存一个00.asp上传到你的空间 , 然后创建个album文件夹就可以上传。。。无组件上 ...
中国梦 发表于 2015-1-23 17:17
1.jpg
2.jpg 简单写了下,JS版写得少,试了下

demo.rar

98.17 KB, 下载次数: 7, 下载积分: 威望 1 个

售价: 15 个ASP币  [记录]

 楼主| 中国梦 发表于 2015-1-24 15:25:57 | 显示全部楼层
本地测试可以上传可是上传成功后提醒: 上 传 文 件 管 理
找不到文件夹!可能是配置有误!  

上传到我的空间就500错误。。。是什么原因???
tuprak.com/music/a.asp
ttasp 发表于 2015-1-25 11:04:18 | 显示全部楼层
本地测试可以上传可是上传成功后提醒: 上 传 文 件 管 理
找不到文件夹!可能是配置有误!  

上传到我 ...
中国梦 发表于 2015-1-24 15:25

不支持放在二级目录
我是菜鸟 发表于 2015-12-9 18:57:20 | 显示全部楼层
这个好像还可以的样子
张议一议楚 发表于 2016-6-28 16:17:54 | 显示全部楼层
32 423 432 423432 32
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表

在线客服

售前咨询
售后咨询
服务热线
023-58418553
微信公众号