typeScript CGLib动态代理 单例模式 string handlebarsjs flink教程视频 sql视频教程 大数据驾驶舱 拼接json字符串 maven配置eclipse android自定义控件 css选择器有几种 java解析pdf cmd清空命令 python函数内定义函数 java正则表达式 java设置 java的环境配置 java语言代码大全 java程序 java字符串操作 java创建对象 linux安装 shell编程学习 java电子书下载 霜之祝福 php取整函数 手机主题之家 微信猜拳 c4dr19 python电子书 文章查重软件 苏拉玛起义的任务线 sdm439 抠图软件免费版 发射爱心的图片 谷歌浏览器访问助手 密码翻译 欧洲卡车模拟2存档 sql2008r2
当前位置: 首页 > 学习教程  > 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

共有条评论 网友评论

验证码: 看不清楚?