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;
    }
    }
    }
    }

  • 相关阅读:
    登陆澳洲一周年记
    开源项目:SQL Monitor 3.0.8
    数据处理利器SSIS入门与进阶
    自动输出SQL Server对象依赖列表到EXCEL文件
    .NET开源数据库的前世和今生(上)
    分布式文件快速搜索技术细节分析(开源/并行)
    ROS与ROS2通讯机制的区别
    快速理解ROS2通信
    Linux解决The following packages have unmet dependencies
    ROS 移植到各种平台教程
  • 原文地址:https://www.cnblogs.com/tianxuan/p/4733437.html
Copyright © 2011-2022 走看看