zoukankan      html  css  js  c++  java
  • 如何实现大文件数据上传

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

    namespace WinShowDown
    {
    public partial class FrmMain : Form
    {
    public FrmMain()
    {
    InitializeComponent();
    }

    private void btnDown_Click(object sender, EventArgs e)
    {
    DownloadFile("http://localhost:1928/WebServer/downloader/123.rar", @"C:123.rar", progressBar1, label1);
    }
    /// <summary>
    /// c#,.net 下载文件
    /// </summary>
    /// <param name="URL">下载文件地址</param>
    ///
    /// <param name="Filename">下载后的存放地址</param>
    /// <param name="Prog">用于显示的进度条</param>
    ///
    public void DownloadFile(string URL, string filename, System.Windows.Forms.ProgressBar prog, System.Windows.Forms.Label label1)
    {
    float percent = 0;
    try
    {
    System.Net.HttpWebRequest Myrq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(URL);
    System.Net.HttpWebResponse myrp = (System.Net.HttpWebResponse)Myrq.GetResponse();
    long totalBytes = myrp.ContentLength;
    if (prog != null)
    {
    prog.Maximum = (int)totalBytes;
    }
    System.IO.Stream st = myrp.GetResponseStream();
    System.IO.Stream so = new System.IO.FileStream(filename, System.IO.FileMode.Create);
    long totalDownloadedByte = 0;
    byte[] by = new byte[1024];
    int osize = st.Read(by, 0, (int)by.Length);
    while (osize > 0)
    {
    totalDownloadedByte = osize + totalDownloadedByte;
    System.Windows.Forms.Application.DoEvents();
    so.Write(by, 0, osize);
    if (prog != null)
    {
    prog.Value = (int)totalDownloadedByte;
    }
    osize = st.Read(by, 0, (int)by.Length);

    percent = (float)totalDownloadedByte / (float)totalBytes * 100;
    label1.Text = "当前补丁下载进度" + percent.ToString() + "%";
    System.Windows.Forms.Application.DoEvents(); //必须加注这句代码,否则label1将因为循环执行太快而来不及显示信息
    }
    so.Close();
    st.Close();
    }
    catch (System.Exception)
    {
    throw;
    }
    }
    }
    }

  • 相关阅读:
    修改maven远程仓库为阿里的maven仓库(复制)
    Vue下iframe如何实现和父窗口的通信
    Vue在子组件内如何触发父组件的方法
    PhpStorm环境设置Debug
    史上最全的Excel数据编辑处理技巧(转)
    按钮样式
    字符和数字对齐的字体
    使用jquery控制只能输入数字,并且关闭输入法(转)
    Javascript中字符串转换成Date的方法
    MongoDB工具MagicMongoDBTool
  • 原文地址:https://www.cnblogs.com/tianxuan/p/4733437.html
Copyright © 2011-2022 走看看