欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

下载文件时-修改文件名字

程序员文章站 2022-04-08 17:35:04
1后台代码 2】前端js代码 3】body中的代码 ......

1后台代码

  /// <summary>
        /// 文件下载2
        /// </summary>
        /// <param name="filename">需要修改的文件名</param>
        /// <param name="filepath">文件路径路径</param>
        public void bigfiledownload(string filename, string filepath)
        {
            system.io.stream istream = null;

            // buffer to read 10k bytes in chunk:
            byte[] buffer = new byte[10000];

            // length of the file:
            int length;

            // total bytes to read:
            long datatoread;

            // identify the file to download including its path.
            string filepath = system.web.httpcontext.current.server.mappath(filepath);

            // identify the file name.
            string filename = system.io.path.getfilename(filepath);

            try
            {
                // open the file.
                istream = new system.io.filestream(filepath, system.io.filemode.open,
                            system.io.fileaccess.read, system.io.fileshare.read);


                // total bytes to read:
                datatoread = istream.length;

                response.contenttype = "application/octet-stream";
                response.addheader("content-disposition", "attachment; filename=" + system.web.httputility.urlencode(filename));//system.text.utf8encoding.utf8.getbytes(filename)

                // read the bytes.
                while (datatoread > 0)
                {
                    // verify that the client is connected.
                    if (response.isclientconnected)
                    {
                        // read the data in buffer.
                        length = istream.read(buffer, 0, 10000);

                        // write the data to the current output stream.
                        response.outputstream.write(buffer, 0, length);

                        // flush the data to the html output.
                        response.flush();

                        buffer = new byte[10000];
                        datatoread = datatoread - length;
                    }
                    else
                    {
                        //prevent infinite loop if user disconnects
                        datatoread = -1;
                    }
                }
            }
            catch (exception ex)
            {
                // trap the error, if any.
                string message = ex.message;

            }
            finally
            {
                if (istream != null)
                {
                    //close the file.
                    istream.close();
                }
            }
        }

2】前端js代码

  //2下载
                        document.getelementbyid("ifrload").setattribute("src", encodeuri("/admin/ts/ts?filepath=" + url + "&filename=" + name));
                 

3】body中的代码

    @*文件下载使用,勿删除*@
    <iframe id="ifrload" frameborder="0" name="weidu" scrolling="no"></iframe>