客户端文件下载 我想在vs2005上做一个客户端文件下载功能我需要用什么控件来实现此功能啊! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 上传 FileUpload控件 保存路径========文件上传===============================================protected void Button1_Click(object sender, EventArgs e) { Boolean fileOk = false; //获取文件物理路径 string path = Server.MapPath("~/Account/"); //判断是否选择文件 if (FileUpload1.HasFile) { //取得文件扩展名 string exName = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower(); //限定文件类型 string[] allowExtn = { ".jpg", ".txt", ".gif" }; //对上传的文件的类型进行一个个匹对 for (int i = 0; i < allowExtn.Length; i++) { if (exName == allowExtn[i]) { fileOk = true; break; } } ////对上传文件的大小进行检测,限定文件最大不超过1M //if (FileUpload1.PostedFile.ContentLength > 1024000) //{ // fileOk = false; //} if (!fileOk) { Response.Write("<script>alert('文件类型不对');</script>"); } else { try { FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName); Response.Write("<script>alert('上传成功');</script>"); } catch { Response.Write("<script>alert('上传失败');</script>"); } } }下载 <a href='文件路径'>下载 </a> 直接点击下载 //四种下载方未能//你可以用以用个linkbutton放上去。。设置视图双击//然后把代码放进去。 protected void Button1_Click(object sender, EventArgs e) { //TransmitFile实现下载 /**/ /* 微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite 下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题。 代码如下: */ Response.ContentType = "application/x-zip-compressed"; Response.AddHeader("Content-Disposition", "attachment;filename=keji.rar"); string filename = Server.MapPath("keji.rar"); Response.TransmitFile(filename); Response.Write("<script language=\"javascript\" type=\"text/javascript\">"); Response.Write("alert(\"下载成功\");"); Response.Write("window.location.href=\"C_SC.aspx\";"); Response.Write("</script>"); } protected void Button2_Click(object sender, EventArgs e) { //WriteFile实现下载 string fileName = "ceshi.rar";//客户端保存的文件名 string filePath = Server.MapPath("keji.rar");//路径 FileInfo fileInfo = new FileInfo(filePath); Response.Clear(); Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName); Response.AddHeader("Content-Length", fileInfo.Length.ToString()); Response.AddHeader("Content-Transfer-Encoding", "binary"); Response.ContentType = "application/octet-stream"; Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); Response.WriteFile(fileInfo.FullName); Response.Flush(); Response.End(); } protected void Button3_Click(object sender, EventArgs e) { //WriteFile分块下载 string fileName = "GhostXP.iso";//客户端保存的文件名 string filePath = Server.MapPath("GhostXP7.7.iso");//路径 System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath); if (fileInfo.Exists == true) { const long ChunkSize = 409600;//100K 每次读取文件,只读取100K,这样可以缓解服务器的压力 byte[] buffer = new byte[ChunkSize]; Response.Clear(); System.IO.FileStream iStream = System.IO.File.OpenRead(filePath); long dataLengthToRead = iStream.Length;//获取下载的文件总大小 Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName)); while (dataLengthToRead > 0 && Response.IsClientConnected) { int lengthRead = iStream.Read(buffer, 0, Convert.ToInt32(ChunkSize));//读取的大小 Response.OutputStream.Write(buffer, 0, lengthRead); Response.Flush(); dataLengthToRead = dataLengthToRead - lengthRead; } Response.Close(); } } //字符流方式下载文件 protected void Button4_Click(object sender, EventArgs e) { string fileName = "ce2.rar";//客户端保存的文件名 string filePath = Server.MapPath("keji.rar");//路径 //以字符流的形式下载文件 FileStream fs = new FileStream(filePath, FileMode.Open); byte[] bytes = new byte[(int)fs.Length]; fs.Read(bytes, 0, bytes.Length); fs.Close(); Response.ContentType = "application/octet-stream"; //通知浏览器下载文件而不是打开 Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); Response.BinaryWrite(bytes); Response.Flush(); Response.End(); } #region 文件下载 public bool DownLoadFile(string localPath, string hostURL, int byteCount, string userID, long cruuent) { bool result = true; string tmpURL = hostURL; byteCount = byteCount * 1024; hostURL = tmpURL + "&npos=" + cruuent.ToString(); System.IO.FileStream fs; fs = new FileStream(localPath, FileMode.OpenOrCreate); if (cruuent > 0) { //偏移指针 fs.Seek(cruuent, System.IO.SeekOrigin.Current); } System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(hostURL); if (cruuent > 0) { request.AddRange(Convert.ToInt32(cruuent)); //设置Range值 } try { //向服务器请求,获得服务器回应数据流 System.IO.Stream ns = request.GetResponse().GetResponseStream(); byte[] nbytes = new byte[byteCount]; int nReadSize = 0; nReadSize = ns.Read(nbytes, 0, byteCount); while (nReadSize > 0) { fs.Write(nbytes, 0, nReadSize); nReadSize = ns.Read(nbytes, 0, byteCount); } fs.Close(); ns.Close(); } catch(Exception ex) { LOG.Error("下载" + localPath + "的时候失败!" + "原因是:" + ex.Message); fs.Close(); result = false; } return result; } #endregion 上传using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data;using System.Data.SqlClient;public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { string name = FileUpload1.FileName;//上传文件名字 string size = FileUpload1.PostedFile.ContentLength.ToString(); string type = FileUpload1.PostedFile.ContentType; string type2 = name.Substring(name.LastIndexOf(".") + 1); string ipath = Server.MapPath("upimg") + "\\" + name; string fpath = Server.MapPath("upfile") + "\\" + name; string path="F:\\aaa\\"+FileUpload1.FileName; string wpath = "upimg\\" + name; if (type2 == "jpg" || type2 == "gif" || type2 == "bmp" || type2 == "png") { FileUpload1.SaveAs("F:\\aaa\\"+FileUpload1.FileName); // Image1.ImageUrl="F:\\aaa\\"+FileUpload1.FileName; Label1.Text = "你传图片的名字是" + name + "<br>文件大小为" + size + "<br>文件类型为" + type2 + "<br>文件路径为" + ipath; } SqlConnection cn = new SqlConnection("server=.;database=Northwind;uid=sa;pwd=sa"); SqlCommand cmd = new SqlCommand("insert into Image(imageName,imagepath) values('" + name + "','" + path + "')", cn); cn.Open(); cmd.ExecuteNonQuery(); cn.Close(); } protected void Button2_Click(object sender, EventArgs e) { SqlConnection cn = new SqlConnection("server=.;database=Northwind;uid=sa;pwd=sa"); SqlCommand cmd = new SqlCommand("select imageName from Image where imageID='" + Convert.ToInt32(TextBox1.Text) + "'", cn); cn.Open(); string a = cmd.ExecuteScalar().ToString(); cn.Close(); Image1.ImageUrl = "F:\\aaa\\" + a; }} 绑定超时 listview 与 repeater 执行效率是不是一样高 问一个Cookies的问题 用脚本如何获取GridView中的控件(如:checkbox label .....) asp.net 中datagrid的行选择问题 弹出确认对话框无法跟验证控件并存吗? 怎么在DataGrid中显示图片文件???? 论文评审系统的设计与实现,求帮忙 请教高手,我用asp调用vb编写的ActiveX控件写excel文件,运行出错,提示超时,为什么?还需要设置什么吗?谢谢! 怎样返回这样的目录?急啊!!! !!!!Web Farm添加第二个Server错误 转换
protected void Button1_Click(object sender, EventArgs e)
{
Boolean fileOk = false;
//获取文件物理路径
string path = Server.MapPath("~/Account/");
//判断是否选择文件
if (FileUpload1.HasFile)
{
//取得文件扩展名
string exName = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
//限定文件类型
string[] allowExtn = { ".jpg", ".txt", ".gif" };
//对上传的文件的类型进行一个个匹对
for (int i = 0; i < allowExtn.Length; i++)
{
if (exName == allowExtn[i])
{
fileOk = true;
break;
}
}
////对上传文件的大小进行检测,限定文件最大不超过1M
//if (FileUpload1.PostedFile.ContentLength > 1024000)
//{
// fileOk = false;
//} if (!fileOk)
{
Response.Write("<script>alert('文件类型不对');</script>");
}
else
{
try
{
FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);
Response.Write("<script>alert('上传成功');</script>");
}
catch
{ Response.Write("<script>alert('上传失败');</script>");
}
} }
下载 <a href='文件路径'>下载 </a> 直接点击下载
//你可以用以用个linkbutton放上去。。设置视图双击
//然后把代码放进去。
protected void Button1_Click(object sender, EventArgs e)
{
//TransmitFile实现下载 /**/
/*
微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite
下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题。
代码如下:
*/ Response.ContentType = "application/x-zip-compressed";
Response.AddHeader("Content-Disposition", "attachment;filename=keji.rar");
string filename = Server.MapPath("keji.rar");
Response.TransmitFile(filename);
Response.Write("<script language=\"javascript\" type=\"text/javascript\">");
Response.Write("alert(\"下载成功\");");
Response.Write("window.location.href=\"C_SC.aspx\";");
Response.Write("</script>");
} protected void Button2_Click(object sender, EventArgs e)
{ //WriteFile实现下载
string fileName = "ceshi.rar";//客户端保存的文件名
string filePath = Server.MapPath("keji.rar");//路径 FileInfo fileInfo = new FileInfo(filePath);
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
Response.AddHeader("Content-Length", fileInfo.Length.ToString());
Response.AddHeader("Content-Transfer-Encoding", "binary");
Response.ContentType = "application/octet-stream";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
Response.WriteFile(fileInfo.FullName);
Response.Flush();
Response.End();
} protected void Button3_Click(object sender, EventArgs e)
{
//WriteFile分块下载 string fileName = "GhostXP.iso";//客户端保存的文件名
string filePath = Server.MapPath("GhostXP7.7.iso");//路径 System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath); if (fileInfo.Exists == true)
{
const long ChunkSize = 409600;//100K 每次读取文件,只读取100K,这样可以缓解服务器的压力
byte[] buffer = new byte[ChunkSize]; Response.Clear();
System.IO.FileStream iStream = System.IO.File.OpenRead(filePath);
long dataLengthToRead = iStream.Length;//获取下载的文件总大小
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName));
while (dataLengthToRead > 0 && Response.IsClientConnected)
{
int lengthRead = iStream.Read(buffer, 0, Convert.ToInt32(ChunkSize));//读取的大小
Response.OutputStream.Write(buffer, 0, lengthRead);
Response.Flush();
dataLengthToRead = dataLengthToRead - lengthRead;
}
Response.Close();
}
} //字符流方式下载文件
protected void Button4_Click(object sender, EventArgs e)
{
string fileName = "ce2.rar";//客户端保存的文件名
string filePath = Server.MapPath("keji.rar");//路径 //以字符流的形式下载文件
FileStream fs = new FileStream(filePath, FileMode.Open);
byte[] bytes = new byte[(int)fs.Length];
fs.Read(bytes, 0, bytes.Length);
fs.Close();
Response.ContentType = "application/octet-stream";
//通知浏览器下载文件而不是打开
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
}
public bool DownLoadFile(string localPath, string hostURL, int byteCount, string userID, long cruuent)
{
bool result = true;
string tmpURL = hostURL;
byteCount = byteCount * 1024;
hostURL = tmpURL + "&npos=" + cruuent.ToString();
System.IO.FileStream fs;
fs = new FileStream(localPath, FileMode.OpenOrCreate);
if (cruuent > 0)
{
//偏移指针
fs.Seek(cruuent, System.IO.SeekOrigin.Current);
}
System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(hostURL);
if (cruuent > 0)
{
request.AddRange(Convert.ToInt32(cruuent)); //设置Range值
} try
{
//向服务器请求,获得服务器回应数据流
System.IO.Stream ns = request.GetResponse().GetResponseStream(); byte[] nbytes = new byte[byteCount];
int nReadSize = 0;
nReadSize = ns.Read(nbytes, 0, byteCount);
while (nReadSize > 0)
{
fs.Write(nbytes, 0, nReadSize);
nReadSize = ns.Read(nbytes, 0, byteCount);
}
fs.Close();
ns.Close();
}
catch(Exception ex)
{
LOG.Error("下载" + localPath + "的时候失败!" + "原因是:" + ex.Message);
fs.Close();
result = false;
}
return result;
}
#endregion 上传
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
protected void Button1_Click(object sender, EventArgs e)
{
string name = FileUpload1.FileName;//上传文件名字
string size = FileUpload1.PostedFile.ContentLength.ToString();
string type = FileUpload1.PostedFile.ContentType;
string type2 = name.Substring(name.LastIndexOf(".") + 1);
string ipath = Server.MapPath("upimg") + "\\" + name;
string fpath = Server.MapPath("upfile") + "\\" + name;
string path="F:\\aaa\\"+FileUpload1.FileName;
string wpath = "upimg\\" + name;
if (type2 == "jpg" || type2 == "gif" || type2 == "bmp" || type2 == "png")
{
FileUpload1.SaveAs("F:\\aaa\\"+FileUpload1.FileName);
// Image1.ImageUrl="F:\\aaa\\"+FileUpload1.FileName;
Label1.Text = "你传图片的名字是" + name + "<br>文件大小为" + size + "<br>文件类型为" + type2 + "<br>文件路径为" + ipath;
}
SqlConnection cn = new SqlConnection("server=.;database=Northwind;uid=sa;pwd=sa");
SqlCommand cmd = new SqlCommand("insert into Image(imageName,imagepath) values('" + name + "','" + path + "')", cn);
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
protected void Button2_Click(object sender, EventArgs e)
{ SqlConnection cn = new SqlConnection("server=.;database=Northwind;uid=sa;pwd=sa");
SqlCommand cmd = new SqlCommand("select imageName from Image where imageID='" + Convert.ToInt32(TextBox1.Text) + "'", cn);
cn.Open();
string a = cmd.ExecuteScalar().ToString();
cn.Close();
Image1.ImageUrl = "F:\\aaa\\" + a;
}
}