.Net MVC后台接收xheditor上传文件,FTP文件传输

主要是参考MSDN的范例,简单的给出前台请求后台的处理:

public string uploadfile()
        {


            HttpContext.Response.ContentType = "application/json";
            if (Request.Files.Count == 0)
            {
                return new
                {
                    success = false,
                    err = "没有找到文件"
                }.ToJson();
            }
            string fileName = Request.Files[0].FileName;
            string ftpServerIP = asolution.config.Object.FileServers.FindByName("ftp").Host;  //框架web.config 配置的ftpip用户名和密码
            string ftpUserID = asolution.config.Object.FileServers.FindByName("ftp").Uid;
            string ftpPassword = asolution.config.Object.FileServers.FindByName("ftp").Pwd;
            string fileType = fileName.Substring(fileName.LastIndexOf('.')).ToLower();
            string fileFolder = "files";
            if (fileType == ".jpg" || fileType == "bmp" || fileType == "jpeg" || fileType == "gif" || fileType == "png")
            {
                fileFolder = "images";
            }
            else if (fileType == ".avi" || fileType == ".swf")
            {
                fileFolder = "videos";
            }
        
            string uri = ftpServerIP + "/editorUpload/" + fileFolder +"/"+fileName;
            FtpWebRequest reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
            reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
            reqFTP.KeepAlive = false;
            reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
            reqFTP.UseBinary = true;
            reqFTP.ContentLength = Request.Files[0].ContentLength;
            int buffLength = 2048;
            var fs = Request.Files[0].InputStream;
            byte[] buff = new byte[buffLength];
            int contentLen;
            try
            {
                    Stream strm = reqFTP.GetRequestStream();
                    contentLen = fs.Read(buff, 0, buffLength);


                    while (contentLen != 0)
                    {
                        strm.Write(buff, 0, contentLen);
                        contentLen = fs.Read(buff, 0, buffLength);
                    }
                    strm.Close();
                    fs.Close();
              }
              catch(Exception e) 
              {
                    return new
                    {
                        err = e,
                        msg = ""                        
                    }.ToJson();
               }  
          
            return new { 
                err = "", 
                msg = new { 
                    url =ftpServerIP+"//editorUpload//" + fileFolder +"//"+fileName, 
                    localname = Request.Files[0].FileName }
            }.ToJson();

        }

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值