文档库 最新最全的文档下载
当前位置:文档库 › C#实现拷贝文件时的进度条

C#实现拷贝文件时的进度条

C#实现拷贝文件时的进度条
C#实现拷贝文件时的进度条

C#实现拷贝文件时的进度条

/***************************************************************** ** file name: frmmain.cs

** copyright (c) 1999 -2003

** creator: firephoenix

** created date: 2004-11-13 15:24

** modifier:

** modify date:

** description:

** version:1.0

******************************************************************/ #region using directives

using system;

using system.io ;

using system.xml ;

using system.collections ;

using system.reflection ;

using system.text ;

using system.data ;

using https://www.wendangku.net/doc/696913314.html,ponentmodel;

using system.windows.forms;

using system.drawing;

using system.threading ;

#endregion

namespace windowsapplication4

{

///

/// copy large file

///

public class frmmain : system.windows.forms.form

{

#region

private system.windows.forms.progressbar progressbar1;

private system.windows.forms.buttonbtncopy;

///

/// 必需的设计器变量。

///

private https://www.wendangku.net/doc/696913314.html,ponentmodel.container components = null;

public frmmain()

{

//

// windows 窗体设计器支持所必需的

//

initializecomponent();

//

// todo: 在initializecomponent调用后添加任何构造函数代码//

}

///

/// 清理所有正在使用的资源。

///

protected override void dispose( bool disposing )

{

if( disposing )

{

if (components != null)

{

components.dispose();

}

}

base.dispose( disposing );

}

#region initialize components

///

/// 设计器支持所需的方法- 不要使用代码编辑器修改

/// 此方法的内容。

///

private void initializecomponent()

{

this.progressbar1 = new system.windows.forms.progressbar(); this.btncopy = new system.windows.forms.button();

this.suspendlayout();

//

// progressbar1

//

this.progressbar1.location = new system.drawing.point(8, 16); https://www.wendangku.net/doc/696913314.html, = "progressbar1";

this.progressbar1.size = new system.drawing.size(208, 16); this.progressbar1.tabindex = 0;

//

// btncopy

//

this.btncopy.location = new system.drawing.point(8, 48);

https://www.wendangku.net/doc/696913314.html, = "btncopy";

this.btncopy.tabindex = 1;

this.btncopy.text = "copy";

this.btncopy.click += new system.eventhandler(this.btncopy_click); //

// frmmain

//

this.autoscalebasesize = new system.drawing.size(5, 13);

this.clientsize = new system.drawing.size(232, 77);

this.controls.add(this.btncopy);

this.controls.add(this.progressbar1);

https://www.wendangku.net/doc/696913314.html, = "frmmain";

this.text = "copy file";

this.resumelayout(false);

}

#endregion

///

/// entry point

///

[stathread]

static void main()

{

application.run(new frmmain());

}

#endregion

inttotalsize; //total size

int position; //position

constintbuffer_size = 4096;

byte[] buffer;

stream stream;

private void btncopy_click(object sender, system.eventargs e)

{

string strfile = "";

openfiledialogdlg = new openfiledialog();

if ( dlg.showdialog() == dialogresult.ok )

{

strfile = dlg.filename ;

}

else

{

return ;

}

filestreamfs = new filestream( strfile , filemode.open , fileaccess.read ) ;

totalsize = (int)fs.length ;

stream = fs;

//delete file which aready exists.

if ( file.exists( "c:\\copyedfile.bin" ) )

file.delete( "c:\\copyedfile.bin" );

//copy file while larger than 4kb.

if ( totalsize>buffer_size )

{

buffer = new byte[ buffer_size ];

// async invoke

stream.beginread( buffer , 0 , buffer_size , new asynccallback( asynccopyfile ) , null ); }

else

{

fs.close();

}

}

///

/// asynchronously copy file

///

///

private void asynccopyfile( iasyncresultar )

{

intreadedlength ;

// lock filestream

lock( stream )

{

readedlength = stream.endread( ar ); // when stream endread, get readed length

}

// write to disk

filestreamfswriter = new filestream( "c:\\copyedfile.bin" , filemode.append , fileaccess.write );

fswriter.write( buffer , 0 , buffer.length );

fswriter.close();

// current stream position

position += readedlength;

// response ui

methodinvoker m = new methodinvoker( synchprogressbar );

m.begininvoke( null , null );

if ( position >= totalsize ) // read over.

{

stream.close(); //close filestream

return ;

}

// continue to read and write

lock ( stream )

{

intleftsize = totalsize - position;

if ( leftsize

buffer = new byte[ leftsize ];

stream.beginread( buffer , 0 , buffer.length , new asynccallback( asynccopyfile ) , null ); }

}

private void synchprogressbar()

{

this.progressbar1.maximum = totalsize;

this.progressbar1.value = position ;

}

}

}

PHP 文件上传进度条实现程序

PHP 文件上传进度条实现程序 在php中要实现上传进度条有很多方法,如ajax是现在的主流或利用iframe来实现,现在我们来介绍php的apc与uploadprogress实现文件上传进度条效果。 目前我知道的方法有两种,一种是使用PHP的创始人Rasmus Lerdorf 写的APC扩展模块来实现(https://www.wendangku.net/doc/696913314.html,/package/apc),另外一种方法是使用PECL扩展模块 uploadprogress实现(https://www.wendangku.net/doc/696913314.html,/package/uploadprogress)我这里举两个分别实现的例子供参考,更灵活的应用根据自己需要来修改。 APC实现方法: 安装APC,参照官方文档安装,可以使用PECL模块安装方法快速简捷,这里不说明 配置php.ini,设置参数apc.rfc1867=1 ,使APC支持上传进度条功能,在APC源码说明文档里面有说明 代码范例: 代码如下复制代码if ($_SERVER['REQUEST_METHOD'] == 'POST') { //上传请求 $status = apc_fetch('upload_' . $_POST['APC_UPLOAD_PROGRESS']); $status['done'] = 1; echo json_encode($status); //输出给用户端页面里的ajax调用,相关文档请自己寻找exit; } elseif (isset($_GET['progress_key'])) { //读取上传进度 $status = apc_fetch('upload_'.$_GET['progress_key']); echo json_encode($status);

Java多方式实现文件上传

在Struts 2中实现文件上传 前一阵子有些朋友在电子邮件中问关于Struts 2实现文件上传的问题,所以今天我们就来讨论一下这个问题。 实现原理 Struts 2是通过Commons FileUpload文件上传。Commons FileUpload通过将HTTP的数据保存到临时文件夹,然后Struts使用fileUpload拦截器将文件绑定到Action的实例中。从而我们就能够以本地文件方式的操作浏览器上传的文件。 具体实现 前段时间Apache发布了Struts 2.0.6 GA,所以本文的实现是以该版本的Struts 作为框架的。以下是例子所依赖类包的列表: 清单1 依赖类包的列表 首先,创建文件上传页面FileUpload.jsp,内容如下: <% @ page language = " java " contentType = " text/html; charset=utf-8 " pageEncodi ng = " utf-8 " %> <% @ taglib prefix = " s " uri = " /struts-tags " %> Struts 2 File Upload

JAVA中几种上传方法介绍、比较

java中几种上传方法介绍、比较 1引言 一个网站总是不可避免的要和用户进行信息的交互,能直接使用 request.getParameter()来取得。至于所使用的方法有很多种,比如:jspsmart 公司的jspsmartupload组件,O`Rrilly公司的cos组件,Jakarta Apache公司的commonsFileUpload组件,JavaZoom的uploadbean组件,还有Struts组件中自带的org.apache.struts.upload类工具等等。下面就针对其中的三种解决方案(jspsmartupload、O`Reilly-cos、struts.upload)做一个简单的介绍和对比。2O`Rrilly-Cos Cos组件是O`Rrilly公司开发的,该组件免费,不定期增加新功能,开源。 图1O`Rrilly-Cos 在Cos组件中,MultipartRequest类主要负责文件上传的处理。MultipartRequest有8个构造函数: 1.Public MultipartRequest(HttpServletRequest request,String saveDirectory,)throws IOException 2.Public MultipartRequest(HttpServletRequest request,String saveDirectory,int maxPostSize)throws IOException 3.Public MultipartRequest(HttpServletRequest request,String saveDirectory,int maxPostSize,FileRenamePolicy policy)throws IOException倘若是从窗体传送一般的简单输入类型(例如:text、password、radio、checkbox、select等等)的信息到服务器端时,只要使用 application/x-www-form-urlencoded的编码方式用session传递就可以了。但是当涉及到和用户之间的文件交换(包括上传和下载)时,就不是那么简单了。在上传文件到服务器时,必须要使用multipart/form-data的编码方式,并且不

Java文件上传类FileUploadUtil.java代码+注释

? 一个通用的Java文件上传类,支持上传图片,支持生成缩略图,设置最大上传文件字节数,不设置时默认10M,可接收来自表单的数据,当有多个文件域时, 只上传有文件的,忽略其他不是文件域的所有表单信息,支持用户对上传文件大小, 字节进行设置,本上传类可过滤掉以下文件类型:".exe", ".com", ".cgi", ".asp", ".php", ".jsp"等,你可自已添加过滤的文件后缀,上传文件时如果没有上传目录,则自动创建它。。。 ? package com.gootrip.util; import java.io.File; import java.util.*; import https://www.wendangku.net/doc/696913314.html,mons.fileupload.*; import javax.servlet.http.HttpServletRequest; import java.util.regex.Pattern; import java.io.IOException; import https://www.wendangku.net/doc/696913314.html,mons.fileupload.servlet.ServletFileUpload; import https://www.wendangku.net/doc/696913314.html,mons.fileupload.disk.DiskFileItemFactory; import java.util.regex.Matcher; /** * TODO 要更改此生成的类型注释的模板,请转至 * 窗口-首选项- Java -代码样式-代码模板 */ public class FileUploadUtil {

//当上传文件超过限制时设定的临时文件位置,注意是绝对路径 private String tempPath = null; //文件上传目标目录,注意是绝对路径 private String dstPath = null; //新文件名称,不设置时默认为原文件名 private String newFileName = null; //获取的上传请求 private HttpServletRequest fileuploadReq = null; //设置最多只允许在内存中存储的数据,单位:字节,这个参数不要设置太大 private int sizeThreshold = 4096; //设置允许用户上传文件大小,单位:字节 //共10M private long sizeMax = 10485760; //图片文件序号 private int picSeqNo = 1; private boolean isSmallPic = false; public FileUploadUtil(){ } public FileUploadUtil(String tempPath, String destinationPath){ this.tempPath = tempPath; this.dstPath = destinationPath; }

文件上传原理,联系适用进度条

using System; using System.Collections.Generic; using https://www.wendangku.net/doc/696913314.html,ponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace文件的上传原理_练习使用进度条_ { public partial class Form1 : Form { string path;//选择文件的路径 string fName;//要上传的文件的名字 public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { progressBar1.Visible = false; label2.Visible = false; } private void btnLiulan_Click(object sender, EventArgs e) { openFileDialog1.ShowDialog(); fName = openFileDialog1.SafeFileName.ToString();

textBox1.Text = fName; path = openFileDialog1.FileName.ToString(); path = path.Remove(path.Length - fName.Length); } private void btnStartDownload_Click(object sender, EventArgs e) { int length = 0; int speed; DirectoryInfo di = new DirectoryInfo(path); FileInfo[] fi = di.GetFiles(); foreach (FileInfo fi1 in fi) { if (fName == fi1.ToString()) { length = (int)(fi1.Length); break; } } speed = length / 1024; progressBar1.Maximum = (length / 1024)*100; progressBar1.Value = 0; progressBar1.Step = speed; label2.Visible = true; progressBar1.Visible = true; for (int i = 0; i < (length / 1024) * 100; i += speed) { progressBar1.Value += speed; //label2.Text = "速度:" + speed + "KB/s"; System.Threading.Thread.Sleep(100); } } } }

java实现文件上传、下载

tomcat上传文件下载文件 首先介绍一下我们需要的环境:我用的是myeclipse8.5的java开发环境,tomcat是用的apache-tomcat-6.0.26这个版本。首先先需要准备一下使用到的 jar包 这些jar包是struts2的jar包。这些jar包是都是用于上传文件的。 注意:这里的jar包版本必须是对应的,如不是可能会tomcat下报错。所以大家最好注意一下啊。最好是用这套jar包。我将会在csdn上将项目jar包发上去。 Jar下载地址(0 分):https://www.wendangku.net/doc/696913314.html,/detail/woaixinxin123/4193113 源代码下载(10分): https://www.wendangku.net/doc/696913314.html,/detail/woaixinxin123/4193134 开始搭建我们的项目。创建web项目名字为File。 第一步:搭建struts2框架。 1、到jar包。

2、编辑web.xml struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepa reAndExecuteFilter struts2 /* index.jsp

WebUploader,Java大文件分片上传

Web大文件分片上传 Web环境中大文件上传不能再用form表单一次上传了,这样效率太低; 我在不断尝试SpringMVC环境下分片接受文件,最终失败;原因目测是SpringMVC、Struts 框架是不支持HTML5方式上传的(这类框架只能支持Form表单方式的文件上传,或者FLash) 那我们可以使用Servlet和SpringMVC结合集成方式实现大文件分片上传; 一、来看看我们的web.xml的配置 很明显两个servlet,上面一个配置的是SpringMVC的入口,下面servlet是视频上传; 他们俩的url-pattern不能冲突;

二、先来看看WebUploader的前端代码 以下是代码: <%@page language="java"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

3.

java读取上传excel文件和txt文件中的数据

Java 读取上传文件里的数据,记事本文件和excel文件 本文,文本文件里的数据,每列以 Tab 分隔。 其它分隔符情况下,只需修改对分隔符的判断即可 本文是将文本文件或excel文件里的数据读到List 里。 List , List, ........可以改为返回其它类型的数据集 UpLoadExcel 类里需要操作excel的 jar包 import org.apache.poi.* ; 网上可以搜索下载,简单快捷 ---------------------------------------------------------------------------- - - - public class upLoadAction extends DispatchAction { public ActionForward doAdd(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { TestForm myForm = (TestForm) form; FormFile f = myForm.getUpfisle(); //get上传文件 String fileName = f.getFileName(); // 截取文件名的后三位字符 String fileType = fileName.substring(fileName.length()-3,fileName.length()); System.out.println("导入的文件名:"+fileName+"\t 文件后缀名:"+fileType); List list = new ArrayList(); if("xls".equals(fileType)){ // 上传文件是excel时文件文件后缀名为xls list = new UpLoadExcel().getExcelData(f.getInputStream()); }else if("txt".equals(fileType)){ list = new UploadText().UploadText(f.getInputStream()); } // 操作读取出来的数据,例如: if (list.size() > 0) { String[] str = null; for(int i = 0; i < list.size(); i++) { str = list.get(i); st = "insert into student (sName,sAge,sAddress,sTelephone) values(" ; st = "'" + st + str[0] + "'"; st = ",'" + st + str[1] + "'"; st = ",'" + st + str[4] + "'"; st = ",'" + st + str[6] + "'"; st = st + ")"; ...... System.out.println(st);

Java文件上传下载

主要方法介绍 上传 // 新建一个SmartUpload对象 SmartUpload su = new SmartUpload(); // 上传初始化 su.initialize(pageContext); // 限制每个上传文件的最大长度。 su.setMaxFileSize(10000); // 限制总上传数据的长度。 su.setTotalMaxFileSize(20000); // 设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。 su.setAllowedFilesList("doc,txt"); // 设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat, //jsp,htm,html扩展名的文件和没有扩展名的文件。 su.setDeniedFilesList("exe,bat,jsp,htm,html,,"); // 上传文件 su.upload(); // 将上传文件全部保存到指定目录 int count = su.save("/upload"); 下载 // 新建一个SmartUpload对象 SmartUpload su = new SmartUpload(); // 初始化 su.initialize(pageContext); // 设定contentDisposition为null以禁止浏览器自动打开文件, //保证点击链接后是下载文件。若不设定,则下载的文件扩展名为 //doc时,浏览器将自动用word打开它。扩展名为pdf时, //浏览器将用acrobat打开。 su.setContentDisposition(null); // 下载文件 su.downloadFile("/upload/test.doc"); ***************************************************************************************************** ***************** 应用实例: 用户只能上传图片格式的文件实例

电子投标文件制作及上传问题汇总

电子投标文件制作工具常见问题汇总 工具安装要求 操作系统:推荐win7旗舰版(完整版) 浏览器:推荐IE9 Office:2007及以上版本(2003、wps不可以,如有请卸载)。 另:安装office2003,同时安装2007兼容包方式也不可以。安装包获取 打开赤峰公共资源交易中心网站(),在网站“常用工具”栏 目下载。 注:CA驱动及投标文件制作工具均在此栏目下载 工具安装问题 1、安装工具之前请先关闭360安全卫士,360杀毒等杀毒软件, 否则可能会导致一些插件无法安装导致安装失败 2、安装过程中如遇弹出框提示“XXX文件正在使用”,点击“忽 略”按钮继续安装,待安装完成后重启电脑即可。 3、如安装过程中,进度条已到最后但就是卡住系统无响应,请 重装系统或更换电脑安装。 投标文件制作问题 1、投标工具安装完成后第一次打开会弹出检测页面,按照要

求进行每一项内容检测,检测完成后点击“启动招投标工具”按钮,正式打开新点投标文件制作工具(赤峰版)。 2、制作过程如代理发布答疑文件,请下载最新的答疑文件重 新导入制作(多次答疑使用最新版),之前使用招标文件制作的工程文件(etbp格式)、或已签章加密生成电子投标文件(CFTF、nCFTF格式)均无效(无法上传至系统中)。 3、“授权委托书”中要求附的“法定代表人身份证明”文件, 请放入“投标所需其她材料”文档里一并上传。 4、“施工组织设计”模块操作方法:首先将预先编制完成的的 完整的施工组织设计文档导入,然后将左侧节点与右边施工组织设计正文内容一一对应。 对应方法:右击左侧节点,点击“对应文档位置”。完成后后左侧节点颜色会由红色变为黑色。 如对应错误需重新调整,将右侧正文滚动至需要的地方,仍旧右击左侧节点,点击“对应文档位置”即可。 注意: 1、请各投标单位在节点对应时务必认真对待,千万不要 对应出错。 2、左侧节点为代理设置的施工组织设计评分点,请勿擅 自进行添加,删除等操作,否则后果自负。 3、施工组织设计文档编制请严格按照招标文件要求,内 容方面问题软件公司不予解答,具体可咨询代理。

java实现图片或文件的上传功能实现代码

java实现图片或文件的上传功能具体思路及代码 一、思路 文件是如何从本地发送到服务器的呢? 首先,我们创建一个新的web工程,在工程的WebRoot目录下新建一个upload文件夹,这样当我们将该工程部署到服务器上时,服务器便也生成个upload文件夹,用来存放上传的资源。 然后,在WebRoot目录下新建一个jsp文件,主要实现的作用就是选择上传的文件,提交至servlet来进行处理 详细代码如下:一个form将文件信息通过post方式传送到指定的servlet 二、代码 复制代码代码如下: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> "> My JSP 'upload.jsp' starting page

请选择上传的图片或文件:

C#实现拷贝文件时的进度条

C#实现拷贝文件时的进度条 /***************************************************************** ** file name: frmmain.cs ** copyright (c) 1999 -2003 ** creator: firephoenix ** created date: 2004-11-13 15:24 ** modifier: ** modify date: ** description: ** version:1.0 ******************************************************************/ #region using directives using system; using system.io ; using system.xml ; using system.collections ; using system.reflection ; using system.text ; using system.data ; using https://www.wendangku.net/doc/696913314.html,ponentmodel; using system.windows.forms; using system.drawing; using system.threading ; #endregion namespace windowsapplication4 { ///

/// copy large file /// public class frmmain : system.windows.forms.form { #region private system.windows.forms.progressbar progressbar1; private system.windows.forms.buttonbtncopy; /// /// 必需的设计器变量。 /// private https://www.wendangku.net/doc/696913314.html,ponentmodel.container components = null;

java上传文件通过mybatis存储到数据库的BLOB格式中

上传文件通过mybatis存储到数据库的BLOB格式中 HTML 页面需要设置一个文件框 [html]view plaincopy 1.

2. 3. 4. 5.
上传操作方法: [java]view plaincopy 1.public int doUpload() throws Exception { 2. 3. Map param = new HashMap(); 4. ServletFileUpload servletFileUpload = new ServletFileUpload(); 5. FileItemIterator itr = servletFileUpload.getItemIterator(mSGA.getCur rentRequest()); 6.while (itr.hasNext()) { 7. FileItemStream fi = itr.next(); 8.if ("file".equals(fi.getFieldName())) { 9. InputStream is = fi.openStream(); 10.byte[] b = FileCopyUtils.copyToByteArray(is); //FileCopyU tils 为spring下的一个工具类。 11.if (b == null || b.length == 0) { return0; } 12. param.put("FILE", b);//此处所用的参数类型为 byte[] 13. } 14. } 15. 16.//////////各种参数放入param你懂得。。。。 17. 18.//dao 为个人封装的工具类。。。 19. 20. param.put("ID", dao.getSequence("SEQ_NAME")); 21.

emule 电驴进度条颜色代表的意义

进度条颜色 在下载中列表每个文件都有一个颜色条来显示目前文件可得性及进度. (平坦样式) (圆滑样式) 黑色显示文件的这个部分您已经有了 红色表示所有已知的来源都缺少这一部分 不同变化的蓝色表示这个部分来源可得性. 深蓝代表高的可得性. 黄色表示已下载中的部分 显示在上面的绿色条表示下载的进度总计. (平坦样式) (圆滑样式) 于一个下载已经完成的绿色条直立. (平坦样式) (圆滑样式) 一个暗红色或暗蓝色进度条表示一个停止或暂停的下载. 假如您扩展下载您会看见来源中相同的条状. 看见来源只需在下载的文件上点二下(或是单点一下, 在选项-> 一般内做设定). 在这里不同的颜色中它们代表著: (平坦样式) (圆滑样式) 黑色显示文件的这个部分您已经有了 蓝色这个部分您仍然需要下载 表示在来源中也同样缺少的部分 绿色正在下载中的部分 黄色表示准备中(已经要求) 的部分 来源计数 这四个数值xx / yy +aa (zz)被显示在进度条之后它是这个文件的来源计数而显示的信息如下. ? xx - 有用的来源数 ? yy - 来源数总计 ? + aa - 已要求于其他文件的来源数(只在进阶控制启用时显示) ? zz - 目前传输中的来源数 已获得部分 假如支持的话由其他客户端显示这个长条在上传等候区中. 它显示这个使用者下载中文件的进度. 黑色这个部分这个使用者已经完成 这个部分仍然缺少 绿色这个部分正在上传中 黄色表示准备中(已经要求) 的部分

已共享文件的可得性 每个共享的文件可由这个状态条来显示其可得性. 这颜色的解释和进度条很类似 红色表示所有已知的来源中仍缺少的部分 不同变化的蓝色指出有多少来源的供给

相关文档
相关文档 最新文档