zoukankan      html  css  js  c++  java
  • 突破ewebeditor中无组件200K上传

    问题是这个样子的:我把PDF文档转换为FLASH格式,想上传到网站显示,在后台用的是ewebeditor编辑器,已经设置ewebeditor的上传上限是100M了,结果还是上传不了,提示格式不对,这个明显是获取二进制流的时候没有完全获取到,查了一下,IIS无组件默认限制为200K上传,实验了一下,果然是190K是可以通过的.很多网友的方法是修改IIS设置,服务器又不是我的,我怎么修改啊,所以我选择分块接收文件.
    什么激发了我呢?理由有两个,一个是ewebeditor官方文档中自己有提到大文本处理的方法,思想是一样的,第二个理由就是我以前做过这个事情
    其实蛮简单的,具体过程是
    1.打开ewebeditor/asp/upfileclass.asp
    2.找到oUpFileStream.Write Request.BinaryRead(Request.TotalBytes)这句代码
    3.注释这条代码,并用下面的代码替换
       Dim nTotalBytes, nPartBytes, ReadBytes
      ReadBytes = 0
      nTotalBytes = Request.TotalBytes
      Do While ReadBytes < nTotalBytes
       nPartBytes = 64 * 1024
       If nPartBytes + ReadBytes > nTotalBytes Then
        nPartBytes = nTotalBytes - ReadBytes
       End If
       oUpFileStream.Write Request.BinaryRead(nPartBytes)
       ReadBytes = ReadBytes + nPartBytes
      Loop
    4.保存,测试,搞定
    下面具体说说过程吧
    当提交表单的时候是指向upload.asp的,通过接收不同的参数,做不同的事情,里面有Sub DoSave()这个过程,又调用了DoUpload_Class()这个过程,这个过程中使用了无组件上传类的方法
    先创建实例Set oUpload = New upfile_class
    然后获取数据oUpload.GetData nAllowSize*1024
    看看这个GetData方法,传入参数是一个允许的文件最大值,大家肯定明白意思了.在GetData方法中,创建一个ASP内置组件
    Set oUpFileStream = Server.CreateObject("ADODB." & "Stream")
    oUpFileStream.Type = 1
    oUpFileStream.Mode = 3
    oUpFileStream.Open
    然后就是开始通过这个oUpFileStream 接收字节流了
     nTotalBytes = Request.TotalBytes '获取字节长度
    nPartBytes = 64 * 1024 '设置块大小为64K
    oUpFileStream.Write Request.BinaryRead(nPartBytes) '按块读取
    ReadBytes = ReadBytes + nPartBytes '记录已经读取的字节长度,方便判断剩余字节

    速度网络:域名空间淘宝店

  • 相关阅读:
    关于Spring Test 小结
    排他思想---->tab选项卡
    对金额的格式化
    js 对多个id 的封装方法
    form表单数据封装成json格式并提交给服务器
    js技巧专题篇: 页面跳转
    对象流
    线程
    异常处理、常见异常说明
    数据库(概念、语法、DBMS、SQL语言:创建数据库、表格,添加、修改、删除数据记录)
  • 原文地址:https://www.cnblogs.com/momi/p/2379079.html
Copyright © 2011-2022 走看看