zoukankan      html  css  js  c++  java
  • unity保存字符串内容到服务器ftp站点

    目标是将unity场景数据直接保存在测试服务器某文件夹内,保存为json格式。

    因为用IIS只部署了一个简单的服务器,使用UnityWebRequest上传文件方式不行,所以创建了ftp站点并用FtpWebRequest实现上传。

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Net;
    using System.Text;
    using UnityEngine;
    namespace UPLoadFTP
    {
        class UpLoadFiles
        {
            private static string FTPCONSTR = "ftp://XXX.XXX.XXX.XXX/";//FTP的服务器地址格式(ftp://192.168.1.234/)。ip地址和端口换成自己的,这些建议写在配置文件中,方便修改
            private static string FTPUSERNAME = "Upload";//我的FTP服务器的用户名
            private static string FTPPASSWORD = "1234";//我的FTP服务器的密码
            /// <summary>
            /// 保存字符串内容到FTP
            /// </summary>
            /// <param name="ftpPath">存储上传文件的ftp路径</param>
            /// <param name="fileName">上传文件名称</param>
            /// <returns></returns>
            public static bool UploadFiles(string ftpPath, string fileName)
            {
                string str = "stringContest";
                byte[] array = Encoding.UTF8.GetBytes(str);
                MemoryStream stream = new MemoryStream(array);
                string erroinfo = "";//错误信息
    string path; path = FTPCONSTR + ftpPath + fileName; FtpWebRequest reqFtp = (FtpWebRequest)WebRequest.Create(new Uri(path)); reqFtp.UseBinary = true;//代表可以发送图片 reqFtp.Credentials = new NetworkCredential(FTPUSERNAME, FTPPASSWORD); reqFtp.KeepAlive = false;//在请求完成之后是否关闭到 FTP 服务器的控制连接 reqFtp.Method = WebRequestMethods.Ftp.UploadFile;//表示将文件上载到 FTP 服务器的 FTP STOR 协议方法 reqFtp.ContentLength = stream.Length;//本地上传文件的长度 int buffLength = 2048;//缓冲区大小 byte[] buff = new byte[buffLength];//缓冲区 int contentLen;//存放读取文件的二进制流 try { Stream strm = reqFtp.GetRequestStream();//将FtpWebRequest转换成stream类型 contentLen = stream.Read(buff, 0, buffLength);//存放读取文件的二进制流 //进度条 while (contentLen != 0) { strm.Write(buff, 0, contentLen); contentLen = stream.Read(buff, 0, buffLength); } //释放资源 stream.Close(); strm.Close(); erroinfo = "完成"; return true; } catch (Exception ex) { erroinfo = string.Format("无法完成上传" + ex.Message); Debug.Log(erroinfo); return false; } } } }
    调用:UpLoadFiles.UploadFiles("/config/", "test5.json"); config为FTP站点下文件夹名字

      

    引用链接:https://blog.csdn.net/qq_42345116/article/details/111190763

  • 相关阅读:
    a gcc 4.2.4 bug(被stos指令累加后%edi作为参数的)
    gcc -02引起内存溢出'unsigned i'应修订为'volatile unsigned i'
    gcc优化引起get_free_page比__get_free_page返回值多4096
    gcc请不要优化
    change_bit 按位取反
    IBM messed up *AGAIN* in their thinkpad: 0xA0000 -> 0x9F000
    python正则实例
    详解volatile 关键字与内存可见性
    并发基础知识
    Spring通过注释配置Bean2 关联关系
  • 原文地址:https://www.cnblogs.com/chenxiya/p/14994117.html
Copyright © 2011-2022 走看看