導航:首頁 > 版本升級 > net生成下載文件

net生成下載文件

發布時間:2023-01-17 17:52:17

⑴ 如何在ASP.NET中下載文件

但是這樣的下載有幾個問題: 1. 無法下載不存在的文件:例如,我們若是想把程序動態(臨時)產生的文字,當作一個文件下載的時候(也就是該文件其實原先並不是真的存在,而是動態產生的),就無法下載。 2. 無法下載存儲於資料庫中的文件:這是類似的問題,該文件並沒有真的存在,只是被存放在資料庫中的某個位置(某筆記錄中的某個欄位)的時候,就無法下載。 3. 無法下載不存在於Web文件夾中的文件:文件確實存在,但該文件夾並不是可以分享出來的Web文件夾,例如,該文件的位置在C:/winnt,您總不會想要把該文件夾當作Web文件夾吧?這時候,由於您無法使用Redirect指向該位置,所以無法下載。 4. 下載文件後,原本的頁面將會消失。 1. 這個文件可能是通過ASP.NET程序動態產生的,而不是確實存在於Server端的文件; 2. 或是它雖然存在於伺服器端的某個實體位置,但我們並不想暴露這個位置(如果這個位置公開,很可能沒有許可權的用戶也可以在網址欄上輸入URL直接取得!!!) 3. 或是這個位置並不在網站虛擬路徑所在的文件夾中。(例如C:/Windows/System32...) 這時候,我們就得採用不同的方式: Shared Function DownloadFile(ByVal WebForm As System.Web.UI.Page, ByVal FileNameWhenUserDownload As String, ByVal FileBody As String)WebForm.Response.ClearHeaders() WebForm.Response.Clear() WebForm.Response.Expires = 0 WebForm.Response.Buffer = True WebForm.Response.AddHeader(Accept-Language, zh-tw)'文件名稱WebForm.Response.AddHeader(content-disposition, attachment; filename= & Chr(34) & System.Web.HttpUtility.UrlEncode(FileNameWhenUserDownload, System.Text.Encoding.UTF8) & Chr(34)) WebForm.Response.ContentType = Application/octet-stream'文件內容WebForm.Response.Write(FileBody)WebForm.Response.End() End Function 上面這段代碼是下載一個動態產生的文本文件,若這個文件已經存在於伺服器端的實體路徑,則可以通過下面的函數: Shared Sub DownloadFile(ByVal WebForm As System.Web.UI.Page, ByVal FileNameWhenUserDownload As String, ByVal FilePath As String)WebForm.Response.ClearHeaders() WebForm.Response.Clear() WebForm.Response.Expires = 0 WebForm.Response.Buffer = True WebForm.Response.AddHeader(Accept-Language, zh-tw)'文件名稱WebForm.Response.AddHeader(content-disposition, attachment; filename= & Chr(34) & System.Web.HttpUtility.UrlEncode(FileNameWhenUserDownload, System.Text.Encoding.UTF8) & Chr(34))

⑵ asp.net網頁中,怎樣實現用戶上傳文件,自動在網頁中生成超鏈接,並可以點擊超鏈接用戶可以該下載文件

protectedstringUpLoad(System.Web.UI.WebControls.FileUploadUP_FILE)//參數是一個上傳控制項
{
stringphotourl=string.Empty;
//上傳文件
if(UP_FILE.PostedFile.ContentLength>0)
{
//設定上傳文件的保存路徑

stringstrName=UP_FILE.PostedFile.FileName;
FileInfofl=newFileInfo(strName);
//Response.Write(fl.CreationTime.ToString());
string[]strs=strName.Split('\');
stringstrSaveDir="file/"+strs[strs.Length-1];
//取得文件名(抱括路徑)里最後一個"."的索引
intintExt=strName.LastIndexOf(".");
//取得文件擴展名
stringstrExt=strName.Substring(intExt);
strExt=strExt.ToLower();
//if(strExt!=".jpeg"&&strExt!=".jpg"&&strExt!=".gif")
//{
//Response.Write("<scriptlanguage=javascript>alert('文件類型必須為.gif、.jpg、.jpeg')</script>");
//return;
//}
//if(UP_FILE.PostedFile.ContentLength>3000000)
//{
//Response.Write("<scriptlanguage=javascript>alert('圖片大小超過了限制')</script>");
//return;
//}
UP_FILE.PostedFile.SaveAs(Server.MapPath(strSaveDir));
return"上傳成功!";
}
else
{
return"請選擇要上傳的文件!";
}
}

⑶ 各位大哥問個問題:asp.net 如何在伺服器生成word文件 並提供下載

***
DataTable、GridView、DataList導出至Word或Excel而對Repeater不行!因為DataGrid和DataList都是繼承自WebControl類,

而Repeater則是繼承自Control類

***
使用時,先引入名稱空間:using Insus.NET。此Dll的類別名稱為:ExportToFile

***這代碼要加上去!不然會出現錯誤!
public override void VerifyRenderingInServerForm(Control control)
{

}

成功CODE:

using System.Data.SqlClient;
using Insus.NET;//引入空間

public partial class firstdaytwo : System.Web.UI.Page
{
ExportToFile ojfile = new ExportToFile();//實例化一定要
public override void VerifyRenderingInServerForm(Control control)//這個方法要加上不然出錯
{

}
protected void Page_Load(object sender, EventArgs e)
{
bindData();
}
public void bindData()
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Container"].ConnectionString);
con.Open();
SqlDataAdapter da = new SqlDataAdapter("select * from Sgird", con);
DataSet ds = new DataSet();
da.Fill(ds);
this.GridView1.DataSource = ds;
this.GridView1.DataBind();

}
protected void Button1_Click(object sender, EventArgs e)
{
ojfile.ToWord(GridView1, "ssss");//ssss是你要取的文件名!可以用個textbox讓它動態的改名,ojfile是上面的實例
}
}

你要下一個DLL引入:ExportToFile.dll 實例就上面都說明的

⑷ asp.net 如何實現將伺服器上的文件下載到本地

給你提供一點代碼:

string fileURL = this.Server.MapPath("你要下載的文件路徑");//文件路徑,可用相對路徑

FileInfo fileInfo = new FileInfo(fileURL);

Response.Clear();

Response.AddHeader("content-disposition", "attachment;filename=" +

Server.UrlEncode(fileInfo.Name.ToString()));//文件名

Response.AddHeader("content-length", fileInfo.Length.ToString());//文件大小

Response.ContentType = "application/octet-stream";

Response.ContentEncoding = System.Text.Encoding.Default;

Response.WriteFile(fileURL);

⑸ c#.net上傳和下載文件代碼

public static void FileDownload(string FileName)
{
String FullFileName = System.Web.HttpContext.Current.Server.MapPath(FileName);
FileInfo DownloadFile = new FileInfo(FullFileName);
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.ClearHeaders();
System.Web.HttpContext.Current.Response.Buffer = false;
System.Web.HttpContext.Current.Response.ContentType = "application/octet-stream";
System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.UTF8));
System.Web.HttpContext.Current.Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
System.Web.HttpContext.Current.Response.WriteFile(DownloadFile.FullName);
System.Web.HttpContext.Current.Response.Flush();
System.Web.HttpContext.Current.Response.End();
}
下載,直接調用方法

try
{
if (FileUpload1.PostedFile.FileName.Length == 0)
{
Response.Write("<script>alert(\"上傳路徑不能為空!\");</script>");
return;
}
string filename = this.FileUpload1.PostedFile.FileName.Substring(this.FileUpload1.PostedFile.FileName.LastIndexOf("\\") + 1);
string houzhui = FileUpload1.PostedFile.FileName.Substring(this.FileUpload1.PostedFile.FileName.LastIndexOf(".") + 1);
if (houzhui == "gif" || houzhui == "jpg" || houzhui == "bmp")
{
FileUpload1.PostedFile.SaveAs(Server.MapPath("image/" + filename));
Response.Write("<script>alert(\"上傳文件成功!\");</script>");
}
else
{
Response.Write("<script>alert(\"上傳文件必須是gif,jpg,bmp格式!\");</script>");
return;
}
}
catch (Exception ex)
{
Response.Write("<script>alert(\"" + ex.Message + "\");</script>");
}

上傳,根據自己需要稍加改動

⑹ .net如何實現文件下載功能

你在綁定的時候直接綁定一個超鏈接.它的href等於該文件的路徑就OK了.
如:
<a
href='文件的路徑/<%#
DataBinder.Eval(Container.DataItem,"文件的列名")%>'><%#
DataBinder.Eval(Container.DataItem,"文件的列名")%></a>
---------------------
怎麼個意思?實現文件下載?超鏈接直接鏈接到該文件.就是下載了.至於提示存放路徑.重命名.等操作.是不需要你去寫的.

⑺ .NET處理文件提供下載,並發用戶過50出現伺服器超時情況。 跪求大神出謀解決方案啊!!

下載的文件能否在下載之前就生成出來,如果可以,則採用這個方案,不行的話,需要看看的生成文件的代碼能否有優化的地方,如果是復雜的任務導致的,則建議將復雜任務從WEB分離出去,即WEB只是負責和用戶交互,不負責處理,具體處理則交給其他程序,你描述不是太清楚,也就只能這樣給你意見了,我這邊的需求和你差不多,但是一般高峰時期200左右用戶同時上傳文件也沒有出現拒絕服務的情況(我這邊需求:用戶多選上傳文件,一個文件需要在伺服器上生成PDF和SWF的兩個版本,同時在資料庫中至少要寫入2條記錄,如果是修改的情況,還會更新資料庫)

⑻ 關於.net中文件的下載(C#)

string filepath="文本.txt";
Rsponse.Write("<script>window.open('"+filepath+"')</script>");
filepath里的路徑可以是
絕對路徑:http://www..com/.../.../文本.txt
相對路徑:files/文件.exe
根目錄相對路徑:/WEB/files/文件.rar
明白了吧?

⑼ 如何在asp.net中如何實現文件的下載功能。

protectedvoidBtnDownload_Click(objectsender,EventArgse)
{
SqlConnectionconn=newSqlConnection(ConfigurationManager.ConnectionStrings["sql"].ToString());
conn.Open();
stringstrSql="selecttop1timagefromtest";
SqlCommandcmd=newSqlCommand(strSql,conn);
SqlDataReaderdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);
if(dr.Read())
{
byte[]by=(byte[])dr[0];
Response.AddHeader("Content-Disposition","attachment;filename=ceshi.txt");//設置讀取的文件頭
Response.AddHeader("Content-Length",by.Length.ToString());
Response.ContentType="text/plain";//設置輸出類型這里可以保存在資料庫中動態實現類型
Response.OutputStream.Write(by,0,by.Length);//輸出
Response.Flush();
}
conn.Close();
}

另外也可以把二進制流還原成文件,然後直接提供路徑用超鏈接下載,或者用Response.WriteFile(文件路徑)來實現下載。

⑽ ASP.NET 數據導出到excel文件給客戶端下載的幾種方法麻煩告訴我

實現方法:SqlConnection
conn=new
SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);SqlDataAdapter
da=new
SqlDataAdapter("select
*
from
tb1",conn);DataSet
ds=new
DataSet();da.Fill(ds,"table1");DataTable
dt=ds.Tables["table1"];string
name=System.Configuration.ConfigurationSettings.AppSettings["downloarl"].ToString()
DateTime.Today.ToString("yyyyMMdd")
new
Random(DateTime.Now.Millisecond).Next(10000).ToString()
".csv";//存放到web.config中downloarl指定的路徑,文件格式為當前日期
4位隨機數FileStream
fs=new
FileStream(name,FileMode.Create,FileAccess.Write);StreamWriter
sw=new
StreamWriter(fs,System.Text.Encoding.GetEncoding("gb2312"));sw.WriteLine("自動編號,姓名,年齡");foreach(DataRow
dr
in
dt.Rows){sw.WriteLine(dr["ID"]
","
dr["vName"]
","
dr["iAge"]);}sw.Close();Response.AddHeader("Content-Disposition",
"attachment;
filename="
Server.UrlEncode(name));Response.ContentType
=
"application/ms-excel";//
指定返回的是一個不能被客戶端讀取的流,必須被下載Response.WriteFile(name);
//
把文件流發送到客戶端Response.End();
方法二:導出到csv文件,不存放到伺服器,直接給瀏覽器輸出文件流
優點:1、隨時生成,不需要佔用資源2、可以結合身份認證3、同樣利於數據交換
實現方法:SqlConnection
conn=new
SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);SqlDataAdapter
da=new
SqlDataAdapter("select
*
from
tb1",conn);DataSet
ds=new
DataSet();da.Fill(ds,"table1");DataTable
dt=ds.Tables["table1"];StringWriter
sw=new
StringWriter();sw.WriteLine("自動編號,姓名,年齡");foreach(DataRow
dr
in
dt.Rows){sw.WriteLine(dr["ID"]
","
dr["vName"]
","
dr["iAge"]);}sw.Close();Response.AddHeader("Content-Disposition",
"attachment;
filename=test.csv");Response.ContentType
=
"application/ms-excel";Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");Response.Write(sw);Response.End();
對方法一,二補充一點,如果你希望導出的是xls文件分隔符用\t就可以了,不要用逗號
代碼修改如下:sw.WriteLine("自動編號\t姓名\t年齡");foreach(DataRow
dr
in
dt.Rows){sw.WriteLine(dr["ID"]
"\t"
dr["vName"]
"\t"
dr["iAge"]);}另外,修改輸出的文件擴展名為xls即可。
方法三:從datagrid導出html代碼,生成excel文件,給客戶端下載
優點:1、有固定的格式,樣子好看(datagrid的樣子)
局限性:1、不適合數據交換,裡面有html代碼,比較亂,沒有固定格式2、datagrid不能有分頁、排序等,否則出錯
實現方法:Response.Clear();Response.Buffer=
false;Response.Charset="GB2312";Response.AppendHeader("Content-Disposition","attachment;filename=test.xls");Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
Response.ContentType
=
"application/ms-excel";
this.EnableViewState
=
false;System.IO.StringWriter
oStringWriter
=
new
System.IO.StringWriter();System.Web.UI.HtmlTextWriter
oHtmlTextWriter
=
new
System.Web.UI.HtmlTextWriter(oStringWriter);this.DataGrid1.RenderControl(oHtmlTextWriter);Response.Write(oStringWriter.ToString());Response.End();
在這里說明一點:有的網友反映代碼出現「沒有dr["id"]」之類的錯誤,這個代碼是按照我的數據結構來寫的,到時候相關的欄位要換成你自己的才是。

閱讀全文

與net生成下載文件相關的資料

熱點內容
js跳到頁面某地 瀏覽:550
jsp展示clob欄位 瀏覽:779
nyx在網路上是什麼意思 瀏覽:145
樂播農業app是什麼 瀏覽:530
編程框架如何開發 瀏覽:136
金庸群俠傳3修改代碼 瀏覽:712
檢察院的文件類別有哪些 瀏覽:793
怎麼把九游殘留數據刪除 瀏覽:828
有什麼女生主動聊天的app 瀏覽:436
有哪些可以督促自己的app 瀏覽:244
用USB傳輸視頻文件夾顯示為空 瀏覽:710
恢復文件軟體免費版手機 瀏覽:648
lg怎麼隱藏文件 瀏覽:836
蘋果免費讀書app推薦 瀏覽:497
劉駿微信 瀏覽:113
書旗舊版本80 瀏覽:467
教編程考什麼證 瀏覽:990
下載編程貓後哪裡有客服 瀏覽:13
如何編輯歌曲文件格式 瀏覽:638
cf無限領取cdk工具 瀏覽:350

友情鏈接