资源的下载与上传——02上传

学习笔记适合新手,如有错误请指正。?号处也请各位指点下,谢谢。

上传

从服务器下载资源时,我们通常需要告诉服务器设备信息、用户信息等以便下载对应资源

参数或者文件可以通过UnityEngine.WWWForm类作为WWW的参数上传

设备类型可以通过APPlication.platform得到,例如:RuntimePlatform.IphonePlayer或者RuntimePlatform.Android

设备内存大小尅通过SystemInfo.systemMemorySize得到,例如:服务器通过内存大小来决定返回给客户端普通资源还是高清资源

实例演示如何使用UnityEngine.WWWForm,模拟向服务器上传数据,服务器根据数据返回对应资料的过程,还可以通过UnityEngine.WWWForm上传用户信息以及高分记录等数据

1准备文档“info.text”作为被下载的内容

2新建一个场景

3新建游戏对象并命名为“WWWMAnager”,为其增加脚本如下:

using UnityEngine;
using System.Collections;

public class C_13_2_1: MonoBehaviour {
    private string address;
    private WWWForm form;
    void Awake()
    {
        //地址
        address = "file://"+Application.dataPath+"/Chapter13/info.txt";
        //创建WWWForm并添加版本号等信息
        form = new WWWForm ();
        form.AddField ("version", 1);//游戏版本号
        form.AddField ("username", "John");//用户名
        form.AddField ("Device", Application.platform.ToString());//设备类型
        form.AddField ("Memory", SystemInfo.systemMemorySize);//设备内存大小
    }

    void OnGUI()
    {
        if (GUILayout.Button ("Load")) {
            //使用协程下载
            StartCoroutine(Load(address));
        }
    }

    IEnumerator Load(string url)
    {
        Debug.Log (url);
        //向url地址上传form并下载资料
        WWW www = new WWW (url,form);
        yield return www;
        string text = www.text;
        Debug.Log (text);
    }
}

实例上传屏幕截图如下:

using UnityEngine;
using System.Collections;
using System.IO;
public class C_13_2_2 : MonoBehaviour {
    public string screenShotURL;

    void OnGUI () {
        if (GUILayout.Button ("Upload")) {
            StartCoroutine (UploadPNG ());
        }
    }

    IEnumerator UploadPNG() {
        //等待当前帧都渲染完成时
        yield return new WaitForEndOfFrame();

        string path = Application.dataPath + "/shot.png";
        //截屏并储存
        Application.CaptureScreenshot (path);
        //读取截屏图片
        byte[] bytes = File.ReadAllBytes (path);
        //使用form上传图片
        WWWForm form = new WWWForm();
        form.AddBinaryData("fileUpload", bytes, "screenShot.png", "image/png");
        WWW w = new WWW(screenShotURL, form);
        yield return w;
        if (!string.IsNullOrEmpty(w.error)) {
            print("有错误:"+w.error);
        }
        else {
            print("完成上传");
        }
    }
}
时间: 2024-10-20 17:10:04

资源的下载与上传——02上传的相关文章

使用Snoopy下载论坛附件,并上传到网盘的实例

Snoopy无疑是我使用过的最强大的采集类,本博也做过一些简单的入门介绍. 近日,我完成了数个基于Snoopy的程序,如批量下载百度文档附件.论坛附件下载.本地文件批量上传,已经能比较熟练的使用此类.加上本博主要是做采集程序研究的,那么,有必要将Snoopy的一些高级功能拿出来晒晒,照顾下新人.那今天要演示的一个功能是,Snoopy模拟用户登陆论坛并下载附件,并上传到网盘的一个实例. 通过本例,我们要取得附件上传到网盘以后,返回附件在网盘的下载链接.这个功能,可以和火车采集器无缝结合,实现火车采

重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下载数据, 上传数据, 上传文件

原文:重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下载数据, 上传数据, 上传文件 [源码下载] 作者:webabcd 介绍重新想象 Windows 8.1 Store Apps 之通信的新特性 下载数据(显示下载进度,将下载数据保存到本地) 上传数据(显示上传进度) 上传文件 示例HTTP 服务端WebServer/HttpDemo.aspx.cs /* * 用于响应 http 请求 */ using System; using System.IO;

linux上文件的上传和下载

现整理一篇linux上文件的上传和下载 第一种方式就是在windos上安装工具 如: 工具如何使用我就不赘述了,easy 第二种方式就是使用liux的命令(首先是文件上传) 上传文件(首先创建文件夹如test,如果文件夹已存在会提示 File exists) $ mkdir /data/logs/navinfo/prodfcv1/prodfcv1apps/dongfeng-driver-core/test $ ll -rw-rw-r-- 1 prodfcv1 prodfcv1 50914 Oct

艾恩ASP无组件上传类(上传组件)说明文档(from www.sysoft.cc)

艾恩ASP无组件上传类(上传组件)说明文档2010-1-18 By Anlige一.简介自从接触ASP就开始接触上传,看过一些上传类,但是总感觉封装的还是不够简单,因此自己尝试写一个能够用最少最简单的代码实现各种上传方式的上传类.在学校期间就开始写,一点点的完善.优化,到现在的版本,现在的版本能适应各种上传方式.上传类的主要的功能如下:1.自由设置最大上传大小.单文件最大上传大小2.自由设置允许上传的文件类型3.可设置文本的编码,以适应各种上传环境4.内置进度条,a用户可选择开启和关闭5.多种错

Android网络开源库-Retrofit(三) 批量上传及上传进度监听

由于gif图太大的原因,我将图放在了github,如果博客中显示不出来图,传送门 由于我是事先写在md上的,导致代码的可读性差,大家将就着看吧. 1. 前言 在上一篇博客中,我们介绍了Retrofit的文件上传,文件下载以及进度监听,这篇博客我们来了解下批量上传以及上传进度的监听. 2.批量上传 要想实现批量上传,我们要考虑下HTML中实现批量上传的方法,借助Form表单,所以,我们也可以通过借助Form表单来实现批量上传. 2.1 HTML FORM 表单的写法 <html> <bod

带进度的多文件上传(支持上传.doc后缀的word文档并在线预览)

原文:带进度的多文件上传(支持上传.doc后缀的word文档并在线预览) 源代码下载地址:http://www.zuidaima.com/share/1550463556848640.htm 演示地址:http://img.zeroteam.net/     访问路径和自己工程的设置有关 如:http://localhost:8081/strutd2_fileupload/index.jsp

上传文件和上传头像

一.上传文件 上传一个图片 使用input type="file",来上传一个文件.注意:form表单必须添加属性enctype="multipart/form-data" 在views.py视图函数中,获取文件对象,必须使用request.FILES.get 新建项目upload,在项目中新建static文件夹,在文件夹里面创建upload目录,用来保存上传的文件. 修改settings.py,定义static路径,在最后面加上以下代码.记住下面的等号后面是一个元

国内如何下载code.google、googlecode上的源码webrtc

Github下载代码确实很方便,直接下载那个zip包就OK,无奈有很多开源代码只在googlecode上有,googlecode又只能通过svn下载.在国内需要翻墙才能下载.本人常用的翻墙手段GoAgent和某某门,GoAgent只能在chrome中用,看看网页:某某门穿透力还是差了点.于是在baidu上有搜索到了一个新方法,成功下载googlecode上的webrtc代码,步骤如下: Step1: 打开https://code.google.com/p/smarthosts/,下载hosts文

spring mvc 批量上传+文件上传

spring mvc 批量上传+文件上传 简单3步走.搞定! 上传文件成功后: 1 上传文件核心方法 public static String saveWebImgFile(MultipartFile imgFile){ String webFilePath = ""; if(imgFile.getSize() > 0 && isImage(imgFile.getContentType())){ FileOutputStream fos = null; try {