精华内容
下载资源
问答
  • java web 大文件下载

    千次阅读 2019-04-03 09:44:01
    泽优大文件下载产品测试 泽优大文件下载控件down2,基于php开发环境测试。 开发环境:HBuilder 服务器:wamp64 数据库:mysql 可视化数据库编辑工具:Navicat Premium HBuilder开发环境可以上百度搜索,一站式...

    泽优大文件下载产品测试

    泽优大文件下载控件down2,基于php开发环境测试。

    开发环境:HBuilder

    服务器:wamp64

    数据库:mysql

    可视化数据库编辑工具:Navicat Premium

    HBuilder开发环境可以上百度搜索,一站式安装使用,非常方便。

    Wamp64服务器下载与搭建地址,附带数据库:

    https://jingyan.baidu.com/article/ab0b563091d9b4c15afa7da9.html

    Navicat Premium下载安装:https://www.navicat.com.cn/

     

    从泽优官方网站下载基于php与mysql的down2示例

    地址:http://www.ncmem.com/webapp/down2/versions.aspx

     

     

     

    下载完成。

    安装并打开wamp64,我设置的根目录为D盘,于是D盘下会有wamp64,服务器会自动安装tomcat以及apache,一站式安装环境。当前服务器使用目录为:D:\wamp64\www,所以down2也必须解压在目录中:D:\wamp64\www\down2;对于环境搭建的设置很简单,只需要将文件放入使用目录中即可。

    安装好HBuilder,打开时会有登录的设置,现在的开发环境没有必要,所以不提倡登录,点击“暂不登陆”即可,正式使用这个软件时推荐百度一下这个软件的特性以及用法;我们测试不需要单独新建项目,直接打开我们服务器所放置的down2项目,地址如上,我的直接是php文件,这样运行起来更灵活,不会有什么突发情况。

     

    在项目中有很多不同格式的文件,最重要的存储位于项目文件夹db之下的DbHelper.php,只需要配置数据库名,账号,密码,其他的都是设置好的;图中详解。

     

    这里使用数据库可视化工具:Navicat Premium 更为方便。这里使用就可以了,可以根据后期需要再次百度破解版的;首次使用需要新建连接,我自定义了“xm”连接;图中详解。

     

    建立数据库走流程就好了,这里默认;图中详解。

     

    新建的数据库—表默认为空的,这里测试的项目内又设置好的数据库文件,在HBuilder—>php—>sql文件夹中点开down_files.sql 文件可以看到一大串代码,这就是建表的代码了。将代码全选并复制进剪贴板;在数据库中点击表然后新建查询,图中详解。

     

    在查询窗口粘贴剪切板中的代码,图中详解。

     

    表建好了,环境也就搭好了。

    可以开始我们的测试了,按顺序来第一个应该是index.html这个页面吧,为了保证下载到我想要的文件,而不是测试文件我们需要更改一下代码,图中详解。

     

    我的图片地址是:D:\wamp64\www\down2\第一张.jpg,后面以此类推。

     

    代码修改了,就在环境中打开浏览器,图中详解。

     

     

    目录设置好了,点击“下载测试文件”,下载我想要的图片文件

     

    除了有个弹框碍事点了一下确定后,我的路径图片下载好了。测试用例“单文件下载”有效。

     

    接着来测试第二个用例“json.htm”,这个用例也要更改一下测试文件下载地址,地址见上面。

     

    更改好了,点击浏览器图标运行。

     

    这里下载文件夹成功了,测试用例“单文件夹下载”有效。

     

    前面测试了单文件夹下载,这里来测试文件夹批量下载 json-fd.htm:

     

    文件地址替换后,点击浏览器图标运行。

     

    下载完成,看一下嵌套的文件吧,点击打开选项

     

    这里文件夹批量下载测试用例有效。

    大文件下载测试用例 svr.htm:

     

    点击浏览器图标运行。

     

    下载过程中准备暂停一下的,但是传输速度有点太快了,没来得及,总体“大文件下载,及断点续传”测试用例有效。

     

    前面测试过单文件下载,现在来文件批量下载:

     

    点击浏览器图标运行

     

    文件批量下载除了每下载一个都要在弹框中确定一下外,还是很成功的,“文件批量下载”测试用例有效。

    经过了这几项测试,泽优大文件下载产品的成功,具有强大的商业价值。

     

    展开全文
  • WebApi文件下载

    千次阅读 2019-04-05 10:10:52
    webapi文件下载 核心操作代码 ar = new HttpResponseMessage(HttpStatusCode.OK); ar.Content = new StreamContent(stream....); string fileName = string.Format("{0}.xlsx", "测试excel"); Encoding encoding =...

    webapi文件下载

    1. 核心操作代码
    ar = new HttpResponseMessage(HttpStatusCode.OK);
    ar.Content = new StreamContent(stream....);
    string fileName = string.Format("{0}.xlsx", "测试excel");
    Encoding encoding = System.Text.Encoding.Default;
    fileName = GetBrowserFileName(fileName, ref encoding); //文件名编码部分
    HttpContext.Current.Response.ContentEncoding = encoding;
    ar.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
    ar.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
    {
        FileName = fileName
    };
    
    1. 文件导出根据浏览器,对文件名进行编码部分
    private string GetBrowserFileName(string fileName,ref Encoding encoding)
    {
        string outputFileName = null;
        string browser = HttpContext.Current.Request.UserAgent.ToUpper();
        if (browser.Contains("MS") == true && browser.Contains("IE") == true)
        {
            outputFileName = HttpUtility.UrlEncode(fileName);
            encoding = System.Text.Encoding.Default;
        }
        else if (browser.Contains("FIREFOX") == true)
        {
            outputFileName = fileName;
            encoding = System.Text.Encoding.GetEncoding("GB2312");
        }
        else
        {
            outputFileName = HttpUtility.UrlEncode(fileName);
            encoding = System.Text.Encoding.Default;
        }
        return outputFileName;
    }
    
    展开全文
  • Webapi之文件下载

    千次阅读 2018-03-21 20:26:22
    Webapi之文件下载 该方法有问题!!!直接输入api没有问题,但是用axios调用api则下载的excel没有内容,如果是直接点击a标签(标签href值为api)也没问题 范例说明: 前端:vue.js + element-ui ...

    Webapi之文件下载

    该方法有问题!!!直接输入api没有问题,但是用axios调用api则下载的excel没有内容,如果是直接点击a标签(标签href值为api)也没问题

    范例说明:

    • 前端:vue.js + element-ui
    • 后端:c# webapi
    • 其它:只尝试本地调试,未在服务器上验证

    前端部分

    // html
    <el-button
              size="mini" round
              icon="el-icon-download"
              @click="downloadExcel">导出</el-button>
    
    // 引用外部js文件,在exprot default{}前
    import EXCEL from '../../common/HandleExcel.js'
    // 调用api
    downloadTemplate: function () {
            this.axios.get(this.docApi + '/template?filename=StudentTemplate.xlsx', {
              responseType: 'blob'
            }).then((res)=>{
              EXCEL.downloadFile(res, '学生信息导入模板');
            },(res)=>{
              console.log(res);
            });
          }
    
    // 外部js文件,HandleExcel.js
    const EXCEL = {
      downloadFile: function (data, fileName) {
        if(!data){
          return;
        }
        let url = window.URL.createObjectURL(new Blob([data]));
        let link = document.createElement('a');
        link.style.display = 'none';
        link.href = url;
        link.setAttribute('download', fileName);
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);
      }
    }
    export default EXCEL;
    

    后端部分

    [RoutePrefix("api/handledoc")]
        public class HandleDocumentController : ApiController
        {
    		static string fileUrl = @"/document/";  //文件路径
    		//  api/handledoc/template?filename={...}
    		        [Route("template")]
    		        [HttpGet]
    		        public HttpResponseMessage getDocTemplate(string filename)
    		        {
    		            var FilePath = System.Web.Hosting.HostingEnvironment.MapPath(fileUrl + filename);     //获取完整绝对路径
    		            var stream = new FileStream(FilePath, FileMode.Open);
    		            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
    		            response.Content = new StreamContent(stream);
    		            response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
    		            response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
    		            {
    		                FileName = HttpUtility.UrlEncode(Path.GetFileName(FilePath))
    		            };
    		            return response;
    		        }
    	}
    
    展开全文
  • web文件上传下载原理浅析

    万次阅读 2017-12-11 10:58:36
    一、web文件上传浅析 现在有很多Web程序都有上传功能,实现上传功能的组件或框架也很多,如基于java的Commons FileUpload、还有Struts1.x和Struts2中带的上传文件功能(实际上,Struts2在底层也使用了Commons ...

    一、web文件上传浅析

    现在有很多Web程序都有上传功能,实现上传功能的组件或框架也很多,如基于javaCommons FileUpload、还有Struts1.xStruts2中带的上传文件功能(实际上,Struts2在底层也使用了Commons FileUpload)。在asp.net中也有相应的上传文件的控件。

    虽然现在有很多上传组件可以利用,但是了解Web上传文件的原理,对于处理突然出现的问题会有很大的帮助,下面就来讲一下通过浏览器上传文件的基本原理。在了解了原理之后,就可以非常容易地自制满足自身需要的上传组件了。

    众所周知,在客户端代码中需要使用<input type='file' name='file' />来选择要上传的文件,并上传,代码如上:

    <html>
        <head>
            <title>upload</title>
            <meta http-equiv="description" content="this is my page">
            <meta http-equiv="content-type" content="text/html; charset=GB18030">
        </head>
    
        <body>
            <form action="servlet/UploadFile" method="post"
                enctype="multipart/form-data">
                <input type="file" name="file1" id="file1" />
                <input type="file" name="file2" id="file2" />
                <input type="submit" value="上传" />
            </form>
        </body>
    </html>
       从上面的代码可以看出,有两个文件选择框(file1file2),在上传文件时,<form>标签必须加上enctype="multipart/form-data",否则浏览器无法将文件内容上传到服务端。下面我们来做个实验。在ServletdoPost方法中编写如下的代码,如果想使用asp.net或其他的语言或技术,也可以很容易实现相应的功能。

     public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException
        {
            java.io.InputStream is = request.getInputStream();
            java.io.FileOutputStream fos = new java.io.FileOutputStream("d:\\out.txt");
            
            byte[] buffer = new byte[8192];
            int count = 0;
            while((count = is.read(buffer)) >0)
            {
                fos.write(buffer, 0, count);
            }        
            fos.close();
        }
       上面的功能非常简单,只是通过request获得一个InputStream对象,并通过这个对象从客户端获得发送过来的字节流(注意,一定要用字节流,因为,上传的文件可能是二进制文件,如图象文件,因此,使用字节流会更通用)。并将这些字节流保存在D盘的out.txt文件中。然后我们打开out.txt,文件的内容如图1所示:
               
     

                                                                                                                               图1

     由于out.txt是使用文本形式打开的,并且file1上传的是a.jpg(一个图象文件),因此,显示的是一些乱码。我们可以不用管它们。只需要看看这些内容的头部。我们很快就可以找到规律。每一个文件内容的头部都由“-----------------------------30514443229777”分隔,然后是这个文件的属性,如下:

    Content-Disposition: form-data; name="file1"; filename="a.jpg"

    Content-Type: image/jpeg

    其中包含了文件选择框的name属性,还有上传的文件名(filename字段),要注意的,firefox在上传时,这个filename属性值只是文件名,如果使用IE,就是带路径的文件名,如D:"a.jpg

    接下来的规则就和HTTP的头一样了,以一个空行("r"n)分隔。后面就是文件的具体内容。现在最关键的文件的结尾,从图1可以看出,文件的结尾也是“-----------------------------30514443229777”,因此,可以断定,第一个上传的文件(包括文件头)是夹在两个“-----------------------------30514443229777”之间的。而“-----------------------------30514443229777”就是multipart/form-data协议的分隔符。但这里还有一个最关键的问题。这个分隔符每次上传都不一样,服务端是如何知道每次上传的这个分隔符的呢?

    实际上,这个分隔符是通过HTTP请求头的Content-Type字段获得,可通过下面的代码输出这个字段值:

    System.out.println(request.getHeader("Content-type"));

    输出的内容如下:

    multipart/form-data; boundary=---------------------------106712230227687

    只要在服务端获得boundary后面的值即可。经过测试,Content-Type中的分隔符号中的“-”比实际上传的“-”少两个,不知是怎么回事。不过这没关系,我们可以认为每一个文件块是以""r"n—“结尾的,或是直接将从boundary获得的分隔符加两个“”。而最后结尾的分隔符是“---------------------------106712230227687—”,后面多了两个“”。

    综合上述,也就是说,一个文件块是以“---------------------------106712230227687”开头,以“”结尾,从图2可以看出这一切。

                                             

                                                                                                                             图 2

    至于剩下的工作,就是按着上面的规则来分析这些字符流了。分析的方法很多。在这里就不详述了。

          multipart/form-data规 范原文:http://www.ietf.org/rfc/rfc2388.txt 
       Form-based File Upload in HTML:http://www.ietf.org/rfc/rfc1867.txt

    二、web文件下载浅析

    文件下载流程

    服务器端编码原理下载分析:在服务端通过response可以获取到输出流,在服务端通过输入流将文件流获取到然后通过response获取输出流直接写回到浏览器即可完成下载。

    服务器端下载两个响应头设置

    1. 怎样能通知浏览器,下载文件是什么:通过response.setContentType设置响应数据的mimeType类型。获取一个文件的mimeType类型,ServletContext.getMimeType(String filename)
    2.  设置下载文件名称:response.setHeader("Content-Disposition","attachement;filename=下载名称")

    下载乱码问题

    对于下载时,我们在显示文件下载名称的时候,如果包含了中文,就可能出现乱码问题。原因在于不同的浏览器,他们在处理下载文件的时候编码不一致,ie浏览器使用的是utf-8编码,而firefox使用的是base64编码。所以在下载还需要设置编码格式。示例如下:
    		response.setCharacterEncoding("utf-8");
    		String filename = request.getParameter("filename");
    		String downPath = path+"/upload";
    		FileInputStream in = new FileInputStream(downPath+File.separator+filename);
    
    		if(request.getHeader("user-agent").toLowerCase().contains("msie")){
    			filename = URLEncoder.encode(filename, "UTF-8");
    		}else{
    			filename = new String(filename.getBytes("UTF-8"),"iso-8859-1");
    		}
    		response.setHeader("content-disposition", "attachment;filename="+filename);
    		response.setHeader("content-type",this.getServletContext().getMimeType(filename));
    
    		OutputStream os = response.getOutputStream();
    		byte[] buffer = new byte[1024];
    		int len=0;      
    		while((len=in.read(buffer))!=-1) {
    			os.write(buffer, 0, len);
    		}
    		in.close();
    		os.close(); 

    转载地址:https://www.cnblogs.com/nokiaguy/archive/2008/05/29/1209858.html
    
    



    展开全文
  • java web文件下载功能实现

    万次阅读 多人点赞 2014-09-20 17:38:54
    需求:实现一个具有文件下载功能的网页,主要下载压缩包和图片 两种实现方法:  一:通过超链接实现下载 在HTML网页中,通过超链接链接到要下载文件的地址 Insert title here 通过链接下载文件 压缩包 ...
  • web项目文件下载

    千次阅读 2018-02-03 20:16:31
    一:不想开车了,直接进入看代码,本文章中所用环境位jsp+spring MVC(非MVC项目也可以使用)。... // 模板下载  @RequestMapping("/downloadExcelTemplaet")   public void downloadExcelTemplet(HttpServletRe
  • web大文件上传解决方案

    千次阅读 2019-08-16 09:53:17
    众所皆知,web上传大文件,一直是一个痛。上传文件大小限制,页面响应时间超时.这些都是web开发所必须直面的。 本文给出的解决方案是:前端实现数据流分片长传,后面接收完毕后合并文件的思路。 实现文件夹上传,...
  • java web监控文件下载进度

    千次阅读 2018-01-30 13:52:10
     * @downloadFile(下载app文件,监控是否下载完成)  * @作者:dww  * @创建时间:2018年1月30日 下午1:56:35  * @param request  * @param response  * @throws Exception  */ @RequestMa
  • 易语言搭建WEB服务器,无非就是对数据处理与协议头分析做得好...部分功能都已经解析并封装成模块直接调用使用,如果想知道原理也可以直接下载模块源代码进行使用,对于大文件下载也做了对应处理,大文件下载其实也就
  • Java Web文件下载功能实现

    千次阅读 2018-06-10 17:07:59
    本文转自:blog.csdn.net/longshengguoji/article/details/39433307需求:实现一个具有文件下载功能的网页,主要下载压缩包和图片。两种实现方法:一:通过超链接实现下载在HTML网页中,通过超链接链接到要下载的...
  • 最近做网站开发,文件下载功能,如果用户本地已经安装迅雷,则点击下载时自动弹出迅雷下载。 java web项目文件下载想调用迅雷,有做过的么,请教下html页面代码怎么写。谢谢
  • java web 下载文件 浏览器弹出下载

    万次阅读 2016-06-15 17:43:32
    //访问后台springmvc中的excelQfAll方法得到下载的资源 采用的springmvc框架 后台java文件: public void excelQfAll(HttpServletRequest request,HttpServletResponse response) { String f
  • WebApi 下载文件流?

    千次阅读 2018-05-10 19:03:33
    /// 下载文件 /// &lt;/summary&gt; /// &lt;param name="docGuid"&gt;影像资料guid&lt;/param&gt; /// &lt;returns&gt;&lt;/returns&gt; [Accep
  • 在HDFSweb界面下载文件

    千次阅读 2019-08-10 17:07:16
    有一些小伙伴,在搭建好的hdfs:50070的web界面想要下载文件,可是下载不成功,出现了找不到ip地址的问题。这时候,我们就疑惑,我们明明在/etc/hosts文件写下了我的地址和名称的映射的呀。 别急,这是我们的客户端...
  • JavaEE,在网页上上传文件,比如上传Word文档、PDF文件等,但是有的文件希望 被用户浏览并下载,有的文件只希望被用户浏览、不能下载,就像百度文库、豆丁网一样。应该怎么进行实现呢?
  • C#WebApi上传文件下载文件

    千次阅读 2019-12-11 16:35:54
    https://www.cnblogs.com/LikeHeart/p/9581878.html
  • WEB服务 修改IIS大文件“上传”“下载文件大小限制 上传文件大小限制修改: 1 、关闭 iis admin service 服务。 2、 找到 windows\system32\inetsrv\ 下的 metabase.xml 文件。 3、 用纯文本方式打开,...
  • ubuntu下载web链接文件

    千次阅读 2017-12-11 01:33:06
    ubuntu下载web链接文件 #include  main()  {  system("wget -O /home/keyu0915/桌面/19.cer http://localhost:8080/text2/Do wnload?filename=19");  } 安装wget sudo apt-get update sudo apt-...
  • .Net WebAPI 高速下载文件接口实现

    千次阅读 2017-09-30 14:03:54
    接触WebAPI一年多了,感觉是个承上启下,开创未来的技术。老一辈程序员写接口就像写...在开发的过程中遇到了一些问题,部分都可通过百度找到解决方案,但是有一个问题却一直没有很好地解决,那就是文件下载速度的问
  • WebAPI返回文件下载链接

    千次阅读 2018-09-02 15:42:15
    于是,我们在网站根目录(即与App_Data、web.config同级目录)中创建一个TempData目录,用于保存下载后的临时MDB文件,再通过解析调用请求,获得IP与端口,与该路径拼接成一个下载链接。 代码如下: /// &lt...
  • WebApi 文件下载功能实例

    千次阅读 2014-01-02 08:48:44
    /// basic/download /// /// 压缩文件下载 /// /// filePath "> /// [HttpGet] [ActionName("download")] public HttpResponseMessage DownLoad(str
  • web中的许多功能不仅仅依靠后台实现,前台的功能也十分强大,操作使用便捷,今天就看到了一个令人心服口服的案例,所以赶紧记下。下次再遇见,至少可以节省五分钟。 下载功能相信在很多的场景中都需要用到。 看...
  • request.setCharacterEncoding("UTF-8"); //判断用户的请求内容是不是multipart/form-data boolean isMultipart=ServletFileUpload.isMultipartContent(request); if(!isMultipart){ throw new RuntimeException...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 907,254
精华内容 362,901
关键字:

web大文件下载