Unity3D 上传日志

上传日志到服务器,需要先将日志进行压缩,首先下载压缩库Ionic.Zip.dll

Ionic.Zip.dll下载:http://yunpan.cn/cj7U6E4RrRh6m  访问密码 b6df

丢到工程的Assets\Plugins目录下

然后

using Ionic.Zip;

接着就可以使用啦

上传文件需要用到WWW,所以要使用协程,所以要继承MonoBehaviour,或者继承MonoBehaviour的子类

using Ionic.Zip;
using System.IO;
using UnityEngine;

public class UploadFile:MonoBehaviour
{
    protected override void Start()
    {
        string filePath="d:/test/test.text";
        string savePath="d:/test/test.zip";
        #if !UNITY_EDITOR
        filePath = "mnt/sdcard/output_log.txt";
        savePath = "mnt/sdcard/output_log.zip";
        #endif
        try
        {
            if(File.Exists(filePath))
            {
                using(ZipFile zip = new ZipFile())
                {
                    ZipEntry e = zip.AddFile(filePath,"");
                    zip.Save(savePath);
                }


                using(FileStream fs = File.OpenRead(savePath))
                {
                    long i=0;
                    long length = fs.Length;
                    byte[] data = new byte[length];
                    long offset = data.Length>1024?1024:data.Length;


                    while(i<length)
                    {
                        int realRead = fs.Read(data,(int)i,(int)offset);
                        i+=realRead;
                        long tem=length -i;
                        offset=tem>offset?offset:tem;
                        
                        //以时间为文件名//
                        DateTime now = DateTime.Now;
                        string fileName=string.Format("{0}.dat",now.Year+""+now.Month+""+now.Day+"_"+now.Hour+""+now.Minute+""+now.Second);
                        StartCoroutine(upload(fileName,data));
                    }
                }
            }
        }
    }
    IEnumerator upload(string fileName,byte[] data)
    {
        WWWForm form = new WWWForm();
        form.AddField("type","file");
        form.AddBinaryData("log_file",data,fileName,"application/x-gzip");


        string url="http://192.168.0.119:8080/uploadLog";
        #if !UNITY_EDITOR
        url = "http://192.168.218.1:8080/uploadLog";    //外网的地址//
        #endif
        WWW w=new WWW(url,form);
        yield return w;
        if(w.error != null)
        {
            Debug.LogError(w.error);
        }
        else
        {
            if(w.text != null)
            {
                Debug.Log("Finished Uploading:"+w.text);
            }
        }
        yield return null;
    }
}

 

注意,WWWForm的AddBinaryData接口的第四个参数是mimeType,
常见的MIME类型如下:
超文本标记语言文本.html,           text/html
普通文本  .txt               text/plain
RTF文本  .rtf               application/rtf
GIF图形  .gif                            image/gif
JPEG图形  .ipeg,.jpg               image/jpeg
au声音文件  .au                       audio/basic
MIDI音乐文件  .mid,.midi          audio/midi,  audio/x-midi
RealAudio音乐文件 .ra,.ram           audio/x-pn-realaudio
MPEG文件  .mpg,.mpeg                 video/mpeg
AVI文件  .avi                    video/x-msvideo
GZIP文件  .gz                  application/x-gzip
TAR文件  .tar                   application/x-tar

原文地址:https://linxinfa.blog.csdn.net

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


这篇文章将为大家详细讲解有关Unity3D中如何通过Animator动画状态机获取任意animation clip的准确播放持续时长,小编觉得挺实用的,因此分享给大家做个参考,
这篇文章主要介绍了Unity3D如何播放游戏视频,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解
这篇文章给大家分享的是有关Unity3D各平台路径是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、Resources路径 Reso...
小编给大家分享一下Unity3D如何实现移动平台上的角色阴影,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!由于目前主流使用Unity3.x在移动平...
如何解析基于Unity3D的平坦四叉树地形与Virtual Texture的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希
这篇文章主要介绍Unity3D如何实现动态分辨率降低渲染开销,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!之前项目降低分辨率我们都普...
这篇文章主要介绍了unity3d中如何使用屏幕空间改善shadowmap漏光,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编...
这篇文章主要介绍unity3d如何实现基于屏幕空间的描边,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Outline(Based on Image Space)由...
这篇文章给大家分享的是有关unity3d中导入fbx时的Scale是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在Unity中点击GameOb...
这篇文章主要为大家展示了“unity3d中如何实现ttc转ttf及制作字体”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习
这篇文章主要介绍了unity3d中水彩风渲染有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了...
这篇文章将为大家详细讲解有关unity3d中图像压缩原理是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1 图像可压缩...
这篇文章给大家分享的是有关unity3d中光照公式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。漫反射、高光、物理渲染(PBR...
小编给大家分享一下unity3d中光照探针的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我...
这篇文章将为大家详细讲解有关Unity3D中Rendering Paths及LightMode的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有
这篇文章将为大家详细讲解有关unity3d中图形学的光照原理是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先,在...
这篇文章给大家分享的是有关unity3d中图片渲染流程是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。相关名词GPU(Graphic Pr...
本篇我们来介绍一下左侧工具栏中基本绘制的应用。 一、墙体绘制直墙 & 矩形墙绘制墙体时,可以看到上方的工具栏中对墙体进行参数的设定。 弧形墙在建筑版的户...
xlua是由腾讯维护的一个开源项目,我们可以在github上下载这个开源项目并查看一些相关文档官网:https://github.com/Tencent/xLua配置文档:https://github.com/Tencent/xLua/blob/master/Assets/XLua/Doc/hotfix.md常见问题解答:https://github.com/Tencent/xLua/blob/master/Assets/
我们都知道,一个三维场景的画面的好坏,百分之四十取决于模型,百分之六十取决于贴图,可见贴图在画面中所占的重要性。在这里我将列举一些贴图,并且初步阐述其概念,理解原理的基础上制作贴图,也就顺手多了。我在这里主要列举几种UNITY3D中常用的贴图,与大家分享,希望对大家有帮助。01 首先