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 上传下载随笔相关推荐

  1. Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总1...

    相关文章导航 Sql Server2005 Transact-SQL 新兵器学习总结之-总结 Flex,Fms3相关文章索引 FlexAir开源版-全球免费多人视频聊天室,免费网络远程多人视频会议系统 ...

  2. oracle asp.net上传 下载 文件大小只有32kb,asp默认上传大小

    asp.net 上传大文件大小控制方案 .NET默认允许上传4M的文件. 修改 Machine.config 文件,改动MaxRequestLength 参数的值.在c:\winnt\microsof ...

  3. 初级版python登录验证,上传下载文件加MD5文件校验

    服务器端程序 import socket import json import struct import hashlib import osdef md5_code(usr, pwd):ret = ...

  4. linux快捷上传下载文件

    借助securtCRT,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器 其中,对于sz和rz的理解与记忆我用了如下的方法(因为很多时候容易搞混): ...

  5. Java中使用FTPClient上传下载

    转自:http://blog.csdn.net/hbcui1984/article/details/2720204 在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件,本文 ...

  6. JSP中的文件操作:数据流、File类、文件浏览、目录操作、上传下载

    ​ 文件可以永久地存储信息,从本质上讲文件就是存放在盘上的一系列数据的集合.应用程序如果想长期保存数据,就必须将数据存储到文件中,这就涉及到文件的操作.而在编写网站应用程序的过程中,有许多地方要对文件 ...

  7. 高可用的Spring FTP上传下载工具类(已解决上传过程常见问题)

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:宇的季节 cnblogs.com/chenkeyu/p/80 ...

  8. 教你如何实现c#文件上传下载功能

    简单介绍一下c#文件上传下载功能实现. NuGet 安装SqlSugar Model文件下新建 DbContext 类 public class DbContext {public DbContext ...

  9. SecureCRT上传下载文件

    2019独角兽企业重金招聘Python工程师标准>>> SecureCRT是一个仿真终端连接工具.它可以方便的连接SSH服务器,远程管理Linux.同时,它还能使用多种协议方便的上传 ...

最新文章

  1. KinectFusion简介
  2. 恢复win8桌面上计算机图标,win8系统桌面我的电脑图标不见了如何找回
  3. 物联卡接入号_物联卡apn设置机型大全!物联卡连不上4G,网慢,推荐你看这篇文章...
  4. 通俗理解LightGBM并图解举例
  5. Android:使用Activity制作中间弹窗
  6. php如何防止图片盗用/盗链的两种方法(转)
  7. QT每日一练day15:QColorDialog颜色对话框
  8. 敏捷宣言和背后的原则 (Agile Manifesto and the principles behind)
  9. unity 3d换装之 SkinMeshRenderer
  10. php过滤4字节的字符串,过滤utf8 字符中超过三个字节的字符,或者非utf8字符
  11. Java菜鸟学习笔记--面向对象篇(十八):对象转型多态
  12. idea项目中的idea文件如何隐藏,以及不小心隐藏之后如何显示idea文件夹
  13. python 大智慧 dll 下单_大智慧股票池自动下单教程,大智慧预警信号自动写入到文本插件...
  14. 【独立游戏】如何完成一款游戏? | 独立游戏制作
  15. 终于搞清楚了:java的long的小l和大L区别
  16. java判断输入大写字母,java用ascii码判断输入的是大写字母,小写字母还是数字...
  17. qq飞车手游微信24区服务器,QQ飞车手游手游开服表_QQ飞车手游手游开服时间表_新服新区预告_第一手游网...
  18. 移动磁盘显示数据错误循环冗余检查数据怎样恢复
  19. 2018-8-10-WPF-修改图片颜色
  20. 知名图床程序chevereto双十一半价促销,手把手教你如何搭建一个属于自己的无限存储图床

热门文章

  1. cam是计算机应用中的一种其含义是,CAM是计算机应用领域中的一种,其含义是()。...
  2. 花了 3000 美元,我在 SaaStr 大会学到了什么?——码农驱动的 SaaS 增长之路
  3. uni-app(plus设计app图标角标)
  4. 网络安全的行业黑话 ——攻击篇 之攻击方法
  5. 图像颜色特征提取(颜色直方图,颜色矩)--python
  6. 维吉尼亚密码_附有链接爆破
  7. 怎么把微信里的文件发到QQ?
  8. 批处理获取计算机域名,用批处理获取局域网中电脑ip和mac地址表
  9. Dlib 实现人脸的68点检测
  10. Microsoft Edge浏览器主页被篡改的解决方法(如被篡改为http://www.2345.com.2345.1230578.com/6895732.html)