【Unity3D日常开发】Unity3D中实现向Web服务器上传图片以及下载图片功能
推荐阅读
- CSDN主页
- GitHub开源地址
- Unity3D插件分享
- 简书地址
- 我的个人博客
- QQ群:1040082875
大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。
一、前言
今天分享一下从搭建web服务器,到向服务器发送图片,以及加载图片的整体实现。
因为是Demo演示,所以尽可能的简单、详细且实用,有什么错误敬请指正。
先看一下效果图
:
文章参考:Unity向Web服务器上传和下载图片
二、搭建PHP服务器
搭建PHP服务器还是很简单的,只需要一个软件phpStudy
PHP集成环境。
phpStudy支持LAMP(Linux+Apache+MySQL+PHP)
、WAMP(Windows+Apache+MySQL+PHP)
LAMP和WAMP都是指一组用来搭建动态网站或者服务器的开源软件,软件自身都是独立的程序。
因为常常放到一起使用,所以拥有较高的兼容性,共同组合乘一个强大的Web应用程序平台。
首先,去PhpStudy官网下载安装包:
正常安装完,打开程序,运行Apache:
切换到网站
面板,点击管理
,在下拉菜单中选择打开网站
:
看到欢迎界面说明phpStudy安装并启动成功:
切换到网站
面板,点击管理
,在下拉菜单中选择打开根目录
:
删除index.html
,新建index.php
,用文本编辑器打开index.php
,修改php代码:
<?php
if(isset($_FILES['ImgData']))//判断有没有指定字段
{$folder=$_POST["folder"];//文件夹名 upload$fileName=$_FILES["ImgData"]["name"];//文件名 xxx.jpg$tmp=$_FILES["ImgData"]["tmp_name"];//临时存储的文件名 C:\Windows\php251.tmp$fil=$folder.'/'.$fileName;//文件路径 upload/001.pngif(file_exists($folder))//判断有没有这个文件夹 {if(file_exists($fil))//判断有没有这个文件 { unlink($fil);//删除文件move_uploaded_file($tmp,$fil);//上传}else{move_uploaded_file($tmp,$fil);//没文件直接上传}}else{mkdir($folder,0777);//新建文件夹move_uploaded_file($tmp,$fil);//上传文件}echo $fil;
}
?>
注释标记比较清楚,如果想要学习php的也可以理解一下php代码。
其实语言都是相通的,可以多学习一下其他语言。
三、搭建Unity场景
新建一个RawImage
:
新建一个脚本,命名为WebManager,双击打开脚本编辑脚本:
using System.Collections;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;public class WebManager : MonoBehaviour
{public RawImage myRaw;public Texture2D m_uploadImage;string m_info = "";string imgPath = "";//图片上传服务器IEnumerator IRequestPic(string imgName){string url = "http://127.0.0.1:80/index.php";//这里需要注意一下phpStudy中的端口号WWWForm form = new WWWForm();form.AddField("folder", "upload");form.AddBinaryData("ImgData", m_uploadImage.EncodeToPNG(), imgName + ".png", "image/png");UnityWebRequest req = UnityWebRequest.Post(url, form);yield return req.SendWebRequest();if (req.isHttpError || req.isNetworkError){m_info = "上传失败";}if (req.isDone && !req.isHttpError){m_info = "上传成功";imgPath = req.downloadHandler.text;}}//服务器下载图片IEnumerator DownLoadPic(){string url = "http://127.0.0.1:80/" + imgPath;using (UnityWebRequest request = new UnityWebRequest(url)){//下载图像作为纹理使用DownloadHandlerTexture texDl = new DownloadHandlerTexture(true);request.downloadHandler = texDl;yield return request.SendWebRequest();if (request.isHttpError || request.isNetworkError){m_info = request.error;}else{myRaw.texture = texDl.texture;}}}private void OnGUI(){GUI.BeginGroup(new Rect(Screen.width * 0.5f - 100, Screen.height * 0.5f - 100, 500, 200), "");GUI.Label(new Rect(10, 10, 400, 30), m_info);if (GUI.Button(new Rect(10, 110, 150, 30), "上传 Image")){StartCoroutine(IRequestPic("01"));}if (GUI.Button(new Rect(10, 140, 150, 30), "下载 Image")){StartCoroutine(DownLoadPic());}GUI.EndGroup();}
}
主要注意一下端口号:80,不同的可能会有区别,打开phpStudy
,切换到网站
面板可以看到端口号:
运行程序,就可以上传图片和下载图片了。
【Unity3D日常开发】Unity3D中实现向Web服务器上传图片以及下载图片功能相关推荐
- 开发板搭建简单的Web服务器
开发板搭建简单的Web服务器 BOA服务器是一个小巧高效的web服务器,是一个运行于Linux或unix下的,支持CGI.适合于嵌入式的单任务的服务器,源代码开放,性能高 BOA是非常小巧的web服务 ...
- 8.ASP.NET Core中的Kestrel Web服务器
这篇文章,向大家介绍ASP.NET Core中的Kestrel Web服务器.这篇文章主要讨论下面两个重要的事情: 什么是Kestrel 服务器? 怎么使用.NET Core CLI来运行ASP.NE ...
- hp无线连接web服务器,在HP打印机中设置嵌入式Web服务器的办法
在HP打印机中设置嵌入式Web服务器的办法 在本文中要和大家介绍一下在电脑中设置HP打印机嵌入式Web服务器(EWS)权限的方法.在打印机的嵌入式Web服务器(简称EWS)中,可以设置打印机进行连接的 ...
- 【Unity3D日常开发】Unity3D中实现计时器工具类-正计时、倒计时、暂停计时、加速计时
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...
- 【Unity3D日常开发】Unity3D中打包WEBGL后读取本地文件数据
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...
- 【Unity3D日常开发】Unity3D打包PC窗口化打包设置
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...
- 【Unity3D日常开发】解析Txt文档,赋值给Text案例
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 一.前言 有小伙伴跟我说,公司现在需要解析JSON,但是百度的解析JSON的 ...
- IIS 7.5 中提供的 Web 服务器 (IIS) 角色服务
Internet 信息服务 (IIS) 7.5 是 Windows® 7 中的 Web 服务器 (IIS) 角色和 Windows Server® 2008 R2 中的 Web 服务器.Web 服务器 ...
- Ardunio开发实例-ENC28J60以太网模块实现Web服务器
ENC28J60以太网模块实现Web服务器 ENC28J60采用与以太网兼容的IEEE 802.3或可用作以太网控制器. 换句话说,ENC28J60是具有一种功能的微芯片,该功能能够根据芯片使用Int ...
- web服务器角色源文件,IIS 7.5中提供的Web服务器(IIS)角色服务详请
Internet 信息服务 (IIS) 7.5 是 Windows 7 中的 Web 服务器 (IIS) 角色和 Windows Server? 2008 R2 中的 Web 服务器.Web 服务器在 ...
最新文章
- 【计算理论】计算复杂性 ( 时间复杂度时间单位 : 步数 | 算法分析 | 算法复杂性分析 )
- python链表怎么定义_python:链表定义以及实现
- Eclipse异常关闭启动不了的问题
- docker portainer_「实战篇」开源项目docker化运维部署-Portainer管理集群部署(十)...
- Centos7的 git: 未找到命令解决方法
- C\C++获取当前路径
- 机器视觉系统设计难点有哪些?
- CICD详解(七)——git、gitlab与github
- 设计模式(2)——观察者模式
- VS2010 上手案例---hello word
- mysql实验报告4_数据库实验四实验报告
- 放弃国企工作、花2万参加培训班,只为挤进互联网大厂
- hazy的面试小笔记之Java(持续更新)
- CASIE: Extracting Cybersecurity Event Information from Text阅读总结
- shields 徽标_纽约公共图书馆的新徽标
- php silk v3 decoder,小程序API录音后Silk格式转码MP3
- 如鹏网C语言也能干大事精华帖
- TIA西门子博途V17程序安装及相关注意事项
- C++ 偏微分数值计算库_SymPy 符号计算基本教程
- Final Cut Pro 里视频/图片的颜色反转如何设置
热门文章
- MySQL中文存到数据库是,springMVC保存数据到mysql数据库中文乱码问题解决方法
- pv ip uv区别
- python水浒传名字次数_《水浒传》中108个好汉的姓名及绰号!要按顺序!
- [番外]:带你玩正则1--数据遍地是,看你取不取
- Android中侧滑菜单效果实现(主界面和菜单界面实现平移、缩放、滚动动画)
- Character.isAlphabetic()方法判断中文字符时,返回值为true
- u盘安装系统win2019服务器系统,U盘启动装WIN10系统教程,U盘安装WIN2019方法,UltraISO将Windows server 2016/2019安装盘ISO写入U盘进行安装...
- 开源CRM系统国内有哪些品牌做的好?
- CSS设置背景和渐变色
- 苹果手机怎么扩大内存_一招教你扩大手机虚拟内存,免费换个新手机