社区
C#
帖子详情
C#中如何Download数据?分不够可以加
JavaHobby1216
2005-08-11 11:31:19
C#中如何Download数据?最好有源码。去msdn看了,没找到啊。
...全文
260
25
打赏
收藏
C#中如何Download数据?分不够可以加
C#中如何Download数据?最好有源码。去msdn看了,没找到啊。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
25 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lyb_abiandbel
2005-08-16
打赏
举报
回复
c#:
public bool ResponseFile(HttpRequest _Request, HttpResponse _Response, string _fileName, string _fullPath, long _speed)
{
try {
FileStream myFile = new FileStream(_fullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
BinaryReader br = new BinaryReader(myFile);
try {
_Response.AddHeader("Accept-Ranges", "bytes");
_Response.Buffer = false;
long fileLength = myFile.Length;
long startBytes = 0;
Int16 pack = 10240;
Int16 sleep = Convert.ToInt16(Math.Floor(1000 * pack / _speed) + 1);
if (!(_Request.Headers("Range") == null)) {
_Response.StatusCode = 206;
char[] splitChar = new char[1];
splitChar(0) = "=";
splitChar(1) = "-";
string[][0] range = _Request.Headers("Range").Split("a");
startBytes = Convert.ToInt64(range(1));
}
_Response.AddHeader("Content-Length", (fileLength - startBytes).ToString());
if ((startBytes != 0)) {
_Response.AddHeader("Content-Range", string.Format(" bytes {0}-{1}/{2}", startBytes, fileLength - 1, fileLength));
}
_Response.AddHeader("Connection", "Keep-Alive");
_Response.ContentType = "application/octet-stream";
_Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(_fileName, System.Text.Encoding.UTF8));
br.BaseStream.Seek(startBytes, SeekOrigin.Begin);
long maxCount = Convert.ToInt64(Math.Floor((fileLength - startBytes) / pack) + 1);
long i;
for (int i = 0; i <= maxCount; i++) {
if ((_Response.IsClientConnected)) {
_Response.BinaryWrite(br.ReadBytes(pack));
Thread.Sleep(sleep);
} else {
i = maxCount;
}
}
} catch (Exception e) {
return false;
} finally {
br.Close();
myFile.Close();
}
} catch {
return false;
}
}
sniper81
2005-08-15
打赏
举报
回复
你是在做CS程序还是BS程序啊?
2种结构的做法是不同的
LGame
2005-08-12
打赏
举报
回复
要不给下载时给个提示框出来~~
smile65
2005-08-12
打赏
举报
回复
这个是弹出一个保存对话框的代码
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Excel(*.xls)|*.xls";
saveFileDialog.Title = "保存";
if( saveFileDialog.ShowDialog() != DialogResult.OK )
{
return 0;
}
saveFileDialog.FileName = 你选中的文件的名称(路径加文件名),upload也很简单,就把上面哥们那个download反过来写就好了
holym
2005-08-12
打赏
举报
回复
帮顶
JavaHobby1216
2005-08-12
打赏
举报
回复
UP!!!
Hero4444
2005-08-12
打赏
举报
回复
up
JavaHobby1216
2005-08-12
打赏
举报
回复
多谢smile65(防弹马甲),用了你说的方法,结果出现如下错误:
在应用程序未以 UserInteractive 模式运行时显示模式对话框或窗体是无效的操作。请指定 ServiceNotification 或 DefaultDesktopOnly 样式,以显示服务应用程序发出的通知。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.InvalidOperationException: 在应用程序未以 UserInteractive 模式运行时显示模式对话框或窗体是无效的操作。请指定 ServiceNotification 或 DefaultDesktopOnly 样式,以显示服务应用程序发出的通知。
是不是还要设置什么东西啊???
JavaHobby1216
2005-08-11
打赏
举报
回复
多谢,不过能具体点吗?我接触C#没多久
TechEye
2005-08-11
打赏
举报
回复
只是下载文件是吗?简单的用
WebClient
当然,你也要以用socks
JavaHobby1216
2005-08-11
打赏
举报
回复
up!
JavaHobby1216
2005-08-11
打赏
举报
回复
加30分。。。先!
JavaHobby1216
2005-08-11
打赏
举报
回复
还要非常感谢sniper81(零度的火),不过我把你的程序拷过来,运行时确实能down下来文件,不过页面就像死掉了一样;多谢各位的帮忙,还是需要弹出对话框那段程序,不知道有没有阿? ycpang422(胖胖) 的upload问题,希望大家也能帮忙解决阿,这个帖子如果弄好了,真的值得收藏啊,呵呵!分数是一定会加的!!!
ycpang422
2005-08-11
打赏
举报
回复
还有上传文件怎么写啊
System.Net.WebClient myClient = new System.Net.WebClient();
myClient.UploadFile("http://localhost/upload/",filename);
错误在什么地方?
第二个参数应该用"POST"还是什么?
claus2001
2005-08-11
打赏
举报
回复
mark
JavaHobby1216
2005-08-11
打赏
举报
回复
多谢 syspring(和风细雨) ,我把fileName改成Server.MapPath(fileName);不出异常了,不过怎么弹出保存路径的对话框啊?
sniper81
2005-08-11
打赏
举报
回复
using System;
using System.Net;
namespace ConsoleTest
{
/// <summary>
/// WebDownload 的摘要说明。
/// </summary>
public class WebDownload
{
public WebDownload()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
[STAThread]
static void Main(string[] args)
{
//下载的文件地址
string strURL = "http://localhost/SmartClientDemo_Service/SmartClientDemo_V1.0.0.0/notepad.exe";
HttpWebRequest request = HttpWebRequest.Create(strURL) as HttpWebRequest;
WebResponse response = request.GetResponse();
//保存的文件名称
string strFileName = @"c:\note.exe";
byte[] buffer=new byte[512];
System.IO.FileStream fs = System.IO.File.Create(strFileName);
System.IO.Stream stream = response.GetResponseStream();
int bytesRead=0,bytesCurRead=-1;
while (bytesCurRead != 0)
{
bytesCurRead=stream.Read(buffer,0,512);
fs.Write(buffer,0,bytesCurRead);
bytesRead += bytesCurRead;
Console.WriteLine("CurRead:" + bytesCurRead.ToString());
Console.WriteLine("TotalRead:" + bytesRead.ToString());
}
fs.Close();
stream.Close();
response.Close();
Console.WriteLine("OK");
Console.ReadLine();
}
}
}
JavaHobby1216
2005-08-11
打赏
举报
回复
刚从msdn看到的,不过在我的机器上怎么不好用啊:
显示的路径居然是"E:\WINNT\system32\MenuInfo.xml"
完全不对阿,我的路径应该是E:\Cnet/XmlFile/MenuInfo.xml
string remoteUri = "http://localhost/Cnet/XmlFile/";
string fileName = "MenuInfo.xml", myStringWebResource = null;
myStringWebResource = remoteUri + fileName;
client.DownloadFile(myStringWebResource,fileName);
syspring
2005-08-11
打赏
举报
回复
System.Net.WebClient wc=new System.Net.WebClient();
wc.DownloadFile("http://www.xyz.com/abc.xml,Server.MapPath("abc.xml"));
这是个webform的
JavaHobby1216
2005-08-11
打赏
举报
回复
就是想从server端download到本地,弹出一个对话框窗口那种,很常见的download.
加载更多回复(5)
C#
获取Web.API
数据
的后台方法
C#
获取Web.API
数据
的后台方法,本例不包含api的输出方法 (输出方法请参考:http://
download
.csdn.net/detail/djk8888/9687185) (api的token验证参考:http://
download
.csdn.net/detail/djk8888/9680396)。 调试...
c#
Tcp通讯服务控件
自己用
c#
封装的Socket客户端与服务端控件,在项目当
中
可以直接拖拽使用,也可以查看源码进行修改。基础测试没有问题,大
数据
量压力测试没试过,可独立单独收生信息。
http
Download
对
C#
中
的WebClient的封装,实现了下载超时,队列下载,
数据
解压缩功能等功能。
C#
与.NET3.5高级程序设计(第4版)
中
文1
4.3
C#
中
的数组操作 88 4.4 枚举类型 93 4.5 结构类型 97 4.6 值类型和引用类型 99 4.7 值类型和引用类型:最后的细节 105 4.8
C#
可空类型 106 4.9 小结 108 第5章 定义封装的类类型 109 5.1
C#
类...
C#
版的FtpClient客户端(Socket实现)(可以登陆WinDows,Linux系FTP
可能实行PortMode
数据
传送
加
强了接口. 调用参照' curFtpClent = new FtpClient(); //HostURL curFtpClent.HostUrl = this._NfitsConfigDataCopy.
Download
URI; //サーバのサーバフォルダ curFtpClent....
C#
110,534
社区成员
642,575
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章