代码从c#asp.net中的文件服务器上传和下载文件 [英] code to upload and download files from a fileserver in c # asp.net

查看:93
本文介绍了代码从c#asp.net中的文件服务器上传和下载文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我如何在c#asp.net中从文件服务器上传和下载文件?
服务器:Visual Studio 2010 C#中的SQL Server 2008r2 Webapp asp.net
它是一个SQL Server 2008和tcp ip

how i can upload and download files from a fileserver in c # asp.net?
Server: sql server 2008r2 webapp in visual studio 2010 C# asp.net
it is a SQL Server 2008 and tcp ip

推荐答案

下载文件:
使用(WebClient Client = new WebClient())
{
Client.DownloadFile("http://www.abc.com/file/song/a.mpeg","a.mpeg");
}
Down load file:
using (WebClient Client = new WebClient ())
{
Client.DownloadFile("http://www.abc.com/file/song/a.mpeg", "a.mpeg");
}


下面是一些示例代码:

在asp.net中使用FileUpload控件进行上传

Here are some sample code :

Upload using FileUpload control in asp.net

protected void Button1_Click(object sender, EventArgs e)
  {
      if (FileUpload1.HasFile)
          try
          {
              FileUpload1.SaveAs("C:\\Uploads\\" + FileUpload1.FileName);
              Label1.Text = "File name: " +
                   FileUpload1.PostedFile.FileName + "<br />" +
                   FileUpload1.PostedFile.ContentLength + " kb<br>" +
                   "Content type: " +
                   FileUpload1.PostedFile.ContentType;
          }
          catch (Exception ex)
          {
              Label1.Text = "ERROR: " + ex.Message.ToString();
          }
      else
      {
          Label1.Text = "You have not specified a file.";
      }
  }



下载文件:



Download a file :

FileInfo file = new FileInfo(PathToExcelFile);
if (file.Exists)
{
   Response.Clear();
   Response.ClearHeaders();
   Response.ClearContent();
   Response.AddHeader("content-disposition", "attachment; filename=" + fileName);
   Response.AddHeader("Content-Type", "application/Excel");
   Response.ContentType = "application/vnd.xls";
   Response.AddHeader("Content-Length", file.Length.ToString());
   Response.WriteFile(file.FullName);
   Response.End();
}
else
{
   Response.Write("This file does not exist.");
}



我想这将解决您的问题.如果您想使用FTp(实际上更安全),我稍后会发布该代码



I guess this will solve your problem. Incase you want to use FTp (Which is infact more secure,) i will post that code later


使用FTP

Using FTP

    private void Upload(string filename)
    {
    FileInfo fileInf = new FileInfo(filename);
    string uri = "ftp://" + ftpServerIP + "/" + fileInf.Name;
    FtpWebRequest reqFTP;
     
    // Create FtpWebRequest object from the Uri provided
    reqFTP = (FtpWebRequest)FtpWebRequest.Create
    (new Uri("ftp://" + ftpServerIP + "/" + fileInf.Name));
     
    // Provide the WebPermission Credintials
    reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
     
    // By default KeepAlive is true, where the control connection
    // is not closed after a command is executed.
    reqFTP.KeepAlive = false;
     
    // Specify the command to be executed.
    reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
     
    // Specify the data transfer type.
    reqFTP.UseBinary = true;
     
    // Notify the server about the size of the uploaded file
    reqFTP.ContentLength = fileInf.Length;
     
    // The buffer size is set to 2kb
    int buffLength = 2048;
    byte[] buff = new byte[buffLength];
    int contentLen;
     
    // Opens a file stream (System.IO.FileStream) to read the file
    // to be uploaded
    FileStream fs = fileInf.OpenRead();
     
    try
    {
    // Stream to which the file to be upload is written
    Stream strm = reqFTP.GetRequestStream();
     
    // Read from the file stream 2kb at a time
    contentLen = fs.Read(buff, 0, buffLength);
     
    // Till Stream content ends
    while (contentLen != 0)
    {
    // Write Content from the file stream to the FTP Upload
    // Stream
    strm.Write(buff, 0, contentLen);
    contentLen = fs.Read(buff, 0, buffLength);
    }
     
    // Close the file stream and the Request Stream
    strm.Close();
    fs.Close();
    }
    catch(Exception ex)
    {
    MessageBox.Show(ex.Message, "Upload Error");
    }
    }

/********************************************************************/


    private void Download(string filePath, string fileName)
    {
    FtpWebRequest reqFTP;
    try
    {
    //filePath: The full path where the file is to be created.
    //fileName: Name of the file to be createdNeed not name on
    // the FTP server. name name()
    FileStream outputStream = new FileStream(filePath + "\\" +
    fileName, FileMode.Create);
     
    reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://"
    + ftpServerIP + "/" + fileName));
    reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
    reqFTP.UseBinary = true;
    reqFTP.Credentials = new NetworkCredential(ftpUserID,
    ftpPassword);
    FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
    Stream ftpStream = response.GetResponseStream();
    long cl = response.ContentLength;
    int bufferSize = 2048;
    int readCount;
    byte[] buffer = new byte[bufferSize];
     
    readCount = ftpStream.Read(buffer, 0, bufferSize);
    while (readCount > 0)
    {
    outputStream.Write(buffer, 0, readCount);
    readCount = ftpStream.Read(buffer, 0, bufferSize);
    }
     
    ftpStream.Close();
    outputStream.Close();
    response.Close();
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    }


这篇关于代码从c#asp.net中的文件服务器上传和下载文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆