zoukankan      html  css  js  c++  java
  • .net ftp上传文件方法

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.IO;
    using System.Net;
    using System.Text;
    using System.Configuration;

    namespace DlnOffice.general.netdisk
    {
    public partial class fileupload2 : System.Web.UI.Page
    {

    //这三个常量是从webconfig获取
    private string ftpServerIP = ConfigurationManager.AppSettings["ftpServerIP"];
    private string ftpUserID = ConfigurationManager.AppSettings["ftpUserID"];
    private string ftpPassword = ConfigurationManager.AppSettings["ftpPassword"];
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void LinkButton1_Click(object sender, EventArgs e)
    {
    up_FTP(FileUpload1);
    //up_FTP(FileUpload2);
    Response.Write("<script>alert('完成');window.location.href ='fileupload2.aspx'</script>");

    //else
    //{
    // Response.Write("<script>alert('未选择文件');</script>");
    // return;
    //}
    }

    public void up_FTP(FileUpload fu)
    {
    string AppPath = (base.Request.QueryString["parent_folder"] != null) ? base.Request.QueryString["parent_folder"].ToString() : "/信息科/常用软件";
    if (string.IsNullOrEmpty(AppPath))
    {
    base.Response.Redirect("index.aspx");
    return;
    }
    //文件上传地址根目录,这里通过IIS架设本地主机为FTP服务器
    //string FileSaveUri = @"ftp://127.0.0.1/";
    string FileSaveUri = @"ftp://" + ftpServerIP + AppPath + "/";
    //FTP用户名密码,就是本机的用户名密码
    string ftpUser = ftpUserID;
    string ftpPassWord = ftpPassword;
    Stream requestStream = null;
    Stream fileStream = null;
    FtpWebResponse uploadResponse = null;//创建FtpWebResponse实例uploadResponse
    //Btn_Upload.
    if (fu.HasFile)
    {
    //获取文件长度
    int FileLength = fu.PostedFile.ContentLength;
    //限制上传文件最大不能超过1G
    if (FileLength < 1024 * 1024 * 1024)
    {
    try
    {

    //格式化为URI
    Uri uri = new Uri(FileSaveUri + Path.GetFileName(fu.PostedFile.FileName));
    FtpWebRequest uploadRequest = (FtpWebRequest)WebRequest.Create(uri);//创建FtpWebRequest实例uploadRequest
    uploadRequest.Method = WebRequestMethods.Ftp.UploadFile;//将FtpWebRequest属性设置为上传文件
    uploadRequest.Credentials = new NetworkCredential(ftpUser, ftpPassWord);//认证FTP用户名密码
    requestStream = uploadRequest.GetRequestStream();//获得用于上传FTP的流
    byte[] buffer = new byte[FileLength];
    fileStream = fu.PostedFile.InputStream;//截取FileUpload获取的文件流,作为上传FTP的流
    fileStream.Read(buffer, 0, FileLength);
    requestStream.Write(buffer, 0, FileLength);//将buffer写入流
    requestStream.Close();
    uploadResponse = (FtpWebResponse)uploadRequest.GetResponse();//返回FTP服务器响应,上传完成
    //上传成功

    }
    catch (Exception ex)
    {
    //无法上传
    Response.Write("<script>alert('无法上传');</script>");
    return;
    }
    finally
    {
    if (uploadResponse != null)
    uploadResponse.Close();
    if (fileStream != null)
    fileStream.Close();
    if (requestStream != null)
    requestStream.Close();
    }
    }//end if #FileLength#
    else
    {
    //上传文件过大
    Response.Write("<script>alert('上传文件过大,文件不得超过1G');</script>");
    return;
    }
    }//end if #FileUpload.HasFile#
    else
    {
    //未选择文件
    return;
    }
    }
    }
    }

  • 相关阅读:
    Dynamics CRM9.0更新了Chrome后菜单按钮变形
    质量属性
    机器学习理解
    大道之简的理解
    架构之美理解
    1.13
    1.12
    1.11
    1.10
    Flex 替换输入的字符串
  • 原文地址:https://www.cnblogs.com/hyyweb/p/5133114.html
Copyright © 2011-2022 走看看