intellij idea下载 Android防重复点击 extjs6.5 log4j email matplotlib asynchronous 虚拟机 rspec grunt nginx教程视频 jquery查找子元素 jq选择子元素 最新更新国内最快的dns nginx默认端口号 cpm计算 mysql更新多个字段 matlab不等于怎么表示 反函数的二阶导数 python新手教程 python基础教程 python数字类型 java的包 java写入文件 java的数据类型 java日期函数 java注释规范 java的多线程 ie模拟器 mounted pdf拆分工具 整站系统 模拟人生2夜生活 eagle软件 oracle游标 饥荒黄油 达芬奇resolve OPPO投屏 云挂机软件 filesaver
当前位置: 首页 > 学习教程  > dtcms > dtcms二次开发

dtcms增加ftp上传文件功能

2017/6/15 23:48:55 文章标签: dtcms

针对于使用dtcms建站的网站建设公司多为中小型企业,以及个人建站,很多公司都不想为客户备案,备案虽然不收费但是备案比较麻烦而且备案周期比较长,一般备案都需要服务器服务商初次审核,然后就是国家备案审核一般都需要20天左右,所以很多建站公司都选择了给客户使用香港服务…

        针对于使用dtcms建站的网站建设公司多为中小型企业,以及个人建站,很多公司都不想为客户备案,备案虽然不收费但是备案比较麻烦

而且备案周期比较长,一般备案都需要服务器服务商初次审核,然后就是国家备案审核一般都需要20天左右,所以很多建站公司都选择了给客户使用香港服务器或者,美国等国外服务器,国外服务器的优点就是不用备案!所以大多数使用的都是国外虚拟空间,国外虚拟空间空间小一般都是500M空间,10G流量而且国外服务器,网速比较慢,所以如果把图片等静态资源放到国外服务器,就会导致国内访问网站网速比较慢,以及流量耗用比较大,容易出现问题!

    

    针对此问题本人给dtcms增加了ftp上传功能,静态资源上传到国内虚拟空间上,从而导致静态资源占用国外空间以及流量的问题!


    说了问题的需求原因那就开始做开发吧!


    1,在网站配置,已经model层存储ftp信息,主要存储信息如下

        model层sysconfig

        private string _ftpuri = string.Empty;
        private string _ftpfolder = string.Empty;
        private string _ftpuser = string.Empty;
        private string _ftppass = string.Empty;
        private string _filedomain = string.Empty;

       网站基础信息配置页面sys_config.aspx 增加配置

     

       

     基础信息配置结束

    2,在文件上传的地方,使用ftp上传

       


                 string newFilePath = upLoadPath + newFileName; //本地上传后的路径
                if (sysConfig.fileserver == "ftp")
                {
                    newFilePath = sysConfig.filedomain + '/' + sysConfig.ftpfolder + '/' + newFileName;
                }

                        FtpWebRequest reqFTP;
                        // 根据uri创建FtpWebRequest对象   
                        reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(sysConfig.ftpuri + sysConfig.ftpfolder + '/' + newFileName));
                        // ftp用户名和密码  
                        reqFTP.Credentials = new NetworkCredential(sysConfig.ftpuser, sysConfig.ftppass);
                        reqFTP.UsePassive = false;
                        // 默认为true,连接不会被关闭  
                        // 在一个命令之后被执行  
                        reqFTP.KeepAlive = false;
                        // 指定执行什么命令  
                        reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
                        // 指定数据传输类型  
                        reqFTP.UseBinary = true;
                        // 上传文件时通知服务器文件的大小  
                        reqFTP.ContentLength = byteData.Length;
                        Stream strm = reqFTP.GetRequestStream();
                        strm.Write(byteData, 0, byteData.Length);
                        strm.Close();
                        break;
                      ok至此已经全部完成,代码写的比较菜,等以后再优化吧!好在功能已经实现!



本文链接: http://www.dtmao.cc/news_show_60.shtml

附件下载

相关教程

  • 给dtcms增加模板自动生成功能

    作为dtcms的使用者你是不是像我一样,也在不停的修改模板之后要点击生成模板浪费了很多开发模板的时间?那就跟我一起给dtcms增加一个开发者模式,当模板修改完成之后,直接刷新页面就能看到效果,而不再重复的生成模板,生成模板了!1,增加开发者模式控制选项,和开发是所用的…

    2017/6/15 23:47:34
  • 建网站做推广不能离开百度搜索优化

    废话不多说直接上代码 dtcms交流群 4640336971,新增推送方法using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace DTcms.Common{ /// <summary> /// 百度相关类 /// </summary> public class BaiDu { …

    2017/6/15 23:28:16

共有条评论 网友评论

验证码: 看不清楚?