推荐阅读

  • CSDN主页
  • GitHub开源地址
  • Unity3D插件分享
  • 简书地址
  • 我的个人博客
  • QQ群:1040082875

大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。

一、前言

今天分享一下从搭建web服务器,到向服务器发送图片,以及加载图片的整体实现。

因为是Demo演示,所以尽可能的简单、详细且实用,有什么错误敬请指正。

先看一下效果图

文章参考:Unity向Web服务器上传和下载图片

二、搭建PHP服务器

搭建PHP服务器还是很简单的,只需要一个软件phpStudyPHP集成环境。

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服务器上传图片以及下载图片功能相关推荐

  1. 开发板搭建简单的Web服务器

    开发板搭建简单的Web服务器 BOA服务器是一个小巧高效的web服务器,是一个运行于Linux或unix下的,支持CGI.适合于嵌入式的单任务的服务器,源代码开放,性能高 BOA是非常小巧的web服务 ...

  2. 8.ASP.NET Core中的Kestrel Web服务器

    这篇文章,向大家介绍ASP.NET Core中的Kestrel Web服务器.这篇文章主要讨论下面两个重要的事情: 什么是Kestrel 服务器? 怎么使用.NET Core CLI来运行ASP.NE ...

  3. hp无线连接web服务器,在HP打印机中设置嵌入式Web服务器的办法

    在HP打印机中设置嵌入式Web服务器的办法 在本文中要和大家介绍一下在电脑中设置HP打印机嵌入式Web服务器(EWS)权限的方法.在打印机的嵌入式Web服务器(简称EWS)中,可以设置打印机进行连接的 ...

  4. 【Unity3D日常开发】Unity3D中实现计时器工具类-正计时、倒计时、暂停计时、加速计时

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...

  5. 【Unity3D日常开发】Unity3D中打包WEBGL后读取本地文件数据

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...

  6. 【Unity3D日常开发】Unity3D打包PC窗口化打包设置

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...

  7. 【Unity3D日常开发】解析Txt文档,赋值给Text案例

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 一.前言 有小伙伴跟我说,公司现在需要解析JSON,但是百度的解析JSON的 ...

  8. IIS 7.5 中提供的 Web 服务器 (IIS) 角色服务

    Internet 信息服务 (IIS) 7.5 是 Windows® 7 中的 Web 服务器 (IIS) 角色和 Windows Server® 2008 R2 中的 Web 服务器.Web 服务器 ...

  9. Ardunio开发实例-ENC28J60以太网模块实现Web服务器

    ENC28J60以太网模块实现Web服务器 ENC28J60采用与以太网兼容的IEEE 802.3或可用作以太网控制器. 换句话说,ENC28J60是具有一种功能的微芯片,该功能能够根据芯片使用Int ...

  10. web服务器角色源文件,IIS 7.5中提供的Web服务器(IIS)角色服务详请

    Internet 信息服务 (IIS) 7.5 是 Windows 7 中的 Web 服务器 (IIS) 角色和 Windows Server? 2008 R2 中的 Web 服务器.Web 服务器在 ...

最新文章

  1. 【计算理论】计算复杂性 ( 时间复杂度时间单位 : 步数 | 算法分析 | 算法复杂性分析 )
  2. python链表怎么定义_python:链表定义以及实现
  3. Eclipse异常关闭启动不了的问题
  4. docker portainer_「实战篇」开源项目docker化运维部署-Portainer管理集群部署(十)...
  5. Centos7的 git: 未找到命令解决方法
  6. C\C++获取当前路径
  7. 机器视觉系统设计难点有哪些?
  8. CICD详解(七)——git、gitlab与github
  9. 设计模式(2)——观察者模式
  10. VS2010 上手案例---hello word
  11. mysql实验报告4_数据库实验四实验报告
  12. 放弃国企工作、花2万参加培训班,只为挤进互联网大厂
  13. hazy的面试小笔记之Java(持续更新)
  14. CASIE: Extracting Cybersecurity Event Information from Text阅读总结
  15. shields 徽标_纽约公共图书馆的新徽标
  16. php silk v3 decoder,小程序API录音后Silk格式转码MP3
  17. 如鹏网C语言也能干大事精华帖
  18. TIA西门子博途V17程序安装及相关注意事项
  19. C++ 偏微分数值计算库_SymPy 符号计算基本教程
  20. Final Cut Pro 里视频/图片的颜色反转如何设置

热门文章

  1. MySQL中文存到数据库是,springMVC保存数据到mysql数据库中文乱码问题解决方法
  2. pv ip uv区别
  3. python水浒传名字次数_《水浒传》中108个好汉的姓名及绰号!要按顺序!
  4. [番外]:带你玩正则1--数据遍地是,看你取不取
  5. Android中侧滑菜单效果实现(主界面和菜单界面实现平移、缩放、滚动动画)
  6. Character.isAlphabetic()方法判断中文字符时,返回值为true
  7. u盘安装系统win2019服务器系统,U盘启动装WIN10系统教程,U盘安装WIN2019方法,UltraISO将Windows server 2016/2019安装盘ISO写入U盘进行安装...
  8. 开源CRM系统国内有哪些品牌做的好?
  9. CSS设置背景和渐变色
  10. 苹果手机怎么扩大内存_一招教你扩大手机虚拟内存,免费换个新手机