Unity 上传下载随笔
Unity + NodeJs 上传下载文件 随笔(还木有实现完整)
安装node.js node -v
1.npm install connect serve-static 安装
2.npm install express -g
3.npm install mysql -g
开发环境搭建 sublime3 + nodejs 插件
4.安装package control 并在package control 安装nodejs 插件
JS代码如下:只做了接受 并没有做处理(不太会)
var express = require('express')
var multer = require('multer')
var upload = multer()var documentRoot = 'E:/webTest/www';
var app = express();
app.use(express.static(documentRoot));
app.listen(8888);app.post('/file-upload', upload.array('file',100), function (req, res, next) {console.log(req.files);res.send('文件上传成功');console.log('Upload success');})console.log('Server start success !!');
Unity C#代码 (代码略显浮夸,请轻吐槽)
public static IEnumerator UpLoad(string desFileName, string url){string url1 = url;if (File.Exists(desFileName)){byte[] bytes = File.ReadAllBytes(desFileName);List<IMultipartFormSection> form = new List<IMultipartFormSection>();form.Add(new MultipartFormFileSection("file", bytes, "3_2.jpg", "image/jpg"));form.Add(new MultipartFormFileSection("file", bytes, "3_2_2.jpg", "image/jpg"));byte[] boundary = UnityWebRequest.GenerateBoundary();//serialize form fields into byte[] => requires a bounday to put in between fieldsbyte[] formSections = UnityWebRequest.SerializeFormSections(form, boundary);byte[] terminate = Encoding.UTF8.GetBytes(String.Concat("\r\n--", Encoding.UTF8.GetString(boundary), "--"));// Make my complete body from the two byte arraysbyte[] body = new byte[formSections.Length + terminate.Length];Buffer.BlockCopy(formSections, 0, body, 0, formSections.Length);Buffer.BlockCopy(terminate, 0, body, formSections.Length, terminate.Length);// Set the content type - NO QUOTES around the boundarystring contentType = String.Concat("multipart/form-data; boundary=", Encoding.UTF8.GetString(boundary));using (UnityWebRequest www = new UnityWebRequest(url, UnityWebRequest.kHttpVerbPOST)){UploadHandlerRaw uploadHandlerFile = new UploadHandlerRaw(body);www.uploadHandler = (UploadHandler) uploadHandlerFile;www.uploadHandler.contentType = contentType;www.downloadHandler = (DownloadHandler) new DownloadHandlerBuffer();
// www.SetRequestHeader("Content-Type", "multipart/form-data");yield return www.Send();if (www.isNetworkError || www.isHttpError){Debug.Log(www.error);}else{// Show results as text if (www.responseCode == 200){Debug.Log(www.downloadHandler.text);}}}}}public IEnumerator DownLoad(string desFileName,string url){string url1 = url ;if(File.Exists(desFileName))File.Delete(desFileName);if (!File.Exists(desFileName)){UnityWebRequest request = UnityWebRequest.Get(url1);yield return request.Send();if (request.isDone){int packLength = 1024 * 20;byte[] data = request.downloadHandler.data;int nReadSize = 0;byte[] nbytes = new byte[packLength];using (FileStream fs = new FileStream(desFileName, FileMode.Create))using (Stream netStream = new MemoryStream(data)){nReadSize = netStream.Read(nbytes, 0, packLength);while (nReadSize > 0){fs.Write(nbytes, 0, nReadSize);nReadSize = netStream.Read(nbytes, 0, packLength);double dDownloadedLength = fs.Length * 1.0 / (1024 );//* 1024double dTotalLength = data.Length * 1.0 / (1024 );//* 1024string ss = string.Format("已下载 {0:F}K / {1:F}K", dDownloadedLength, dTotalLength);
// if(OnDownloadProgressEvent!=null)
// {// OnDownloadProgressEvent.Invoke(ss);
// }Debug.Log(ss);yield return null;}}byte[] bytes = request.downloadHandler.data;Texture2D texture2D = new Texture2D(256,256);texture2D.LoadImage(bytes);texture2D.Apply();_rawImage.texture = texture2D;}}
// if (OnDownloadCompleteEvent != null)
// {// Debug.Log("download finished");
// OnDownloadCompleteEvent.Invoke();
// }}
客户端的效果: 可以展示服务器下载下来的图片
服务器的效果:可以接收客户端上传上来的图片
Unity 上传下载随笔相关推荐
- Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总1...
相关文章导航 Sql Server2005 Transact-SQL 新兵器学习总结之-总结 Flex,Fms3相关文章索引 FlexAir开源版-全球免费多人视频聊天室,免费网络远程多人视频会议系统 ...
- oracle asp.net上传 下载 文件大小只有32kb,asp默认上传大小
asp.net 上传大文件大小控制方案 .NET默认允许上传4M的文件. 修改 Machine.config 文件,改动MaxRequestLength 参数的值.在c:\winnt\microsof ...
- 初级版python登录验证,上传下载文件加MD5文件校验
服务器端程序 import socket import json import struct import hashlib import osdef md5_code(usr, pwd):ret = ...
- linux快捷上传下载文件
借助securtCRT,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器 其中,对于sz和rz的理解与记忆我用了如下的方法(因为很多时候容易搞混): ...
- Java中使用FTPClient上传下载
转自:http://blog.csdn.net/hbcui1984/article/details/2720204 在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件,本文 ...
- JSP中的文件操作:数据流、File类、文件浏览、目录操作、上传下载
文件可以永久地存储信息,从本质上讲文件就是存放在盘上的一系列数据的集合.应用程序如果想长期保存数据,就必须将数据存储到文件中,这就涉及到文件的操作.而在编写网站应用程序的过程中,有许多地方要对文件 ...
- 高可用的Spring FTP上传下载工具类(已解决上传过程常见问题)
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:宇的季节 cnblogs.com/chenkeyu/p/80 ...
- 教你如何实现c#文件上传下载功能
简单介绍一下c#文件上传下载功能实现. NuGet 安装SqlSugar Model文件下新建 DbContext 类 public class DbContext {public DbContext ...
- SecureCRT上传下载文件
2019独角兽企业重金招聘Python工程师标准>>> SecureCRT是一个仿真终端连接工具.它可以方便的连接SSH服务器,远程管理Linux.同时,它还能使用多种协议方便的上传 ...
最新文章
- KinectFusion简介
- 恢复win8桌面上计算机图标,win8系统桌面我的电脑图标不见了如何找回
- 物联卡接入号_物联卡apn设置机型大全!物联卡连不上4G,网慢,推荐你看这篇文章...
- 通俗理解LightGBM并图解举例
- Android:使用Activity制作中间弹窗
- php如何防止图片盗用/盗链的两种方法(转)
- QT每日一练day15:QColorDialog颜色对话框
- 敏捷宣言和背后的原则 (Agile Manifesto and the principles behind)
- unity 3d换装之 SkinMeshRenderer
- php过滤4字节的字符串,过滤utf8 字符中超过三个字节的字符,或者非utf8字符
- Java菜鸟学习笔记--面向对象篇(十八):对象转型多态
- idea项目中的idea文件如何隐藏,以及不小心隐藏之后如何显示idea文件夹
- python 大智慧 dll 下单_大智慧股票池自动下单教程,大智慧预警信号自动写入到文本插件...
- 【独立游戏】如何完成一款游戏? | 独立游戏制作
- 终于搞清楚了:java的long的小l和大L区别
- java判断输入大写字母,java用ascii码判断输入的是大写字母,小写字母还是数字...
- qq飞车手游微信24区服务器,QQ飞车手游手游开服表_QQ飞车手游手游开服时间表_新服新区预告_第一手游网...
- 移动磁盘显示数据错误循环冗余检查数据怎样恢复
- 2018-8-10-WPF-修改图片颜色
- 知名图床程序chevereto双十一半价促销,手把手教你如何搭建一个属于自己的无限存储图床
热门文章
- cam是计算机应用中的一种其含义是,CAM是计算机应用领域中的一种,其含义是()。...
- 花了 3000 美元,我在 SaaStr 大会学到了什么?——码农驱动的 SaaS 增长之路
- uni-app(plus设计app图标角标)
- 网络安全的行业黑话 ——攻击篇 之攻击方法
- 图像颜色特征提取(颜色直方图,颜色矩)--python
- 维吉尼亚密码_附有链接爆破
- 怎么把微信里的文件发到QQ?
- 批处理获取计算机域名,用批处理获取局域网中电脑ip和mac地址表
- Dlib 实现人脸的68点检测
- Microsoft Edge浏览器主页被篡改的解决方法(如被篡改为http://www.2345.com.2345.1230578.com/6895732.html)