当前位置:编程学习 > C#/ASP.NET >>

如何实现文件下载时,弹出选择目标文件夹的框?

类似于"浏览文件夹"的对话框,要用到什么组件啊?我在ASP.NET中找不到这样的的控件.谢谢各位了. --------------------编程问答-------------------- /// <summary>
    /// 下载文件
    /// </summary>
    /// <param name="objResponse">response</param>
    /// <param name="fileUrl">文件地址</param>
    public void ExportFile(System.Web.HttpResponse objResponse,string fileUrl)
    {
        //清空response
        objResponse.Clear();
        // 设置上传时间
        DateTime today = DateTime.Now;
        string strdate = today.Year.ToString() + today.Month.ToString() + today.Day.ToString() + today.Hour.ToString() + today.Minute.ToString() + today.Second.ToString();
        //文件后缀名
        string fileExtension = System.IO.Path.GetExtension(fileUrl);
        //文件名
        string fileName = strdate + fileExtension;

        objResponse.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
        objResponse.ContentType = "application/octet-stream";

        Encoding encoding = System.Text.Encoding.GetEncoding("gb2312");

        FileStream file = new FileStream(fileUrl, FileMode.Open, FileAccess.Read);

        int fileLength = Convert.ToInt32(file.Length);

        Byte[] content = new byte[fileLength];

        file.Read(content, 0, fileLength);


        objResponse.AddHeader("Content-Length", content.Length.ToString());
        objResponse.BinaryWrite(content);


    } --------------------编程问答-------------------- 学习 --------------------编程问答-------------------- 不明LZ在说什么 --------------------编程问答-------------------- 参考, 之前整理的上传+下载. 


(一).上传
1.
         <INPUT id="WebFile" style="WIDTH: 490px; HEIGHT: 22px" type="file" size="62" name="WebFile" runat="server">
protected System.Web.UI.HtmlControls.HtmlInputFile WebFile;
文件上传参考代码:
/// <summary>
/// 文件上传
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BtnUpload_Click(object sender, System.EventArgs e)
{
if(WebFile.PostedFile.FileName=="")
{
Info.Text="请先选择要上传的文件";
return;
}

try
{
char[] spliter = {'\\'};
string [] FileName = WebFile.PostedFile.FileName.Split(spliter,10);

string FullPath = CurrentPath + @"\" + FileName[FileName.Length-1];  //生成完整文件名
WebFile.PostedFile.SaveAs(FullPath);  //保存文件
LoadDir(CurrentPath);  //重新载入当前目录
}
catch
{
Info.Text="上传文件失败,请与管理员联系";
}
}

2.
 http://www.gdcic.net/dotnetBank/ViewContent.aspx?artid=000000000186

(二).下载

1. C#: 
/// <summary>
/// 文件下载
/// </summary>
/// <param name="FullFileName"></param>
private void FileDownload(string FullFileName)
{
FileInfo DownloadFile = new FileInfo(FullFileName); 
Response.Clear();
Response.ClearHeaders();
Response.Buffer=false;
Response.ContentType="application/octet-stream";
Response.AppendHeader("Content-Disposition","attachment;filename=" +HttpUtility.UrlEncode(DownloadFile.FullName,System.Text.Encoding.UTF8));
Response.AppendHeader("Content-Length",DownloadFile.Length.ToString());
Response.WriteFile(DownloadFile.FullName);
Response.Flush();
Response.End();
}


2. vb.net
Public Sub WriteDLWindow(ByVal strFileName As String, ByVal page As System.Web.UI.Page)
        Try
           If File.Exists(page.MapPath(strFileName)) Then
               Dim TargetFile As FileInfo = New FileInfo(page.MapPath(strFileName))
               '清除缓冲区流中的所有内容输出.
               page.Response.Clear()
               '向输出流添加HTTP头 [指定下载/保存 对话框的文件名]
               page.Response.AppendHeader("Content-Disposition", "attachment; filename=" + page.Server.UrlEncode(TargetFile.Name))

'繁体格式
                'page.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(strFileName, System.Text.Encoding.UTF8))

                '向输出流添加HTTP头 [指定文件的长度,这样下载文件就会显示正确的进度
                page.Response.AppendHeader("Content-Length", TargetFile.Length.ToString())
                '表明输出的HTTP为流[stream],因此客户端只能下载.
                page.Response.ContentType = "application/octet-stream"
                '发送文件流到客户端.
                page.Response.WriteFile(TargetFile.FullName)
                '停止执行当前页
                page.Response.End()
            End If
        Catch ex As Exception
            Throw ex
        End Try
    End Sub

 Set save file format: 
 Response.ContentType = "application/ms-excel";


补充:.NET技术 ,  组件/控件开发
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,