منبع :gameover.blog.ir
برای اینکار ابتدا یک دوربین توی صحنه داریم.
یک فایل تصویری به اسم screenShot.png در مسیر جاری داریم.
یک اسکریپت csharp برای ایجاد دکمه ی آپلود می سازیم به اسم test.cs می سازیم و ربطش می دیم به دوربین:
سورس اسکریپت سیشارپ test.cs :
//test.cs using UnityEngine; using System.Collections; public class test : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { } void OnGUI() { GUI.Label(new Rect(100, 0, 500, 20), Application.dataPath); if (GUI.Button(new Rect(100, 100, 150, 20), "Upload")) { UploadFile("http://yourSiteName.pergig.ir/upload/upload_file.php"); } } IEnumerator UploadFileCo(string uploadURL) { print ("file://" + Application.dataPath + "/screenShot.png"); WWW localFile = new WWW("file://" + Application.dataPath + "/screenShot.png"); yield return localFile; WWWForm postForm = new WWWForm(); postForm.AddBinaryData("file", localFile.bytes, "screenShot.png", "image/png"); WWW upload = new WWW(uploadURL, postForm); yield return upload; if (upload.error == null) { Debug.Log(upload.text); } else { Debug.Log("Error during upload: " + upload.error); } } void UploadFile(string uploadURL) { StartCoroutine(UploadFileCo(uploadURL)); } }
کد بالا رو ذخیره کنید و بکشید روی دوربین رها کنید.
به جای "http://yourSiteName.pergig.ir/upload/upload_file.php" آدرس فایل upload_file.php رو بدید.
اینم سورس upload_file.php که باید روی یک هاست php بذاریدش:
//upload_file.php <?php $allowedExts = array("gif", "jpeg", "jpg", "png"); $temp = explode(".", $_FILES["file"]["name"]); $extension = end($temp); if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png")) && ($_FILES["file"]["size"] < 20000) && in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br>"; echo "Type: " . $_FILES["file"]["type"] . "<br>"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>"; echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>"; if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);//move uploaded file into "upload" folder in current dir echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "Invalid file"; } ?>
نکته: کد
<?php move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); ?>
باعث میشه فایل یا عکس آپلود شده move بشه به پوشه ی دیگه ای به نام upload که روی سایت باید در مسیر upload_file.php ایجادش کرده باشید(علت این کار اینه که هر فایلی بعد از آپلود ابتدا توی یه پوشه ی موقتی روی سایت ذخیره میشه و حتما باید از تو پوشه ی temporary یا پوشه ی فایل های موقت ، انتقالش بدیم به جای دیگه وگرنه توسط موتورهای امنیتی سایت به طور خودکار حذف میشه. علتش هم سیاست های هر سایت هست که از درک این بحث خارجه)
![[تصویر: upload_file.jpg]](http://s5.picofile.com/file/8146476292/upload_file.jpg)
شما می تونید روی pergig.ir یه هاست رایگان php بگیرید و توی پوشه ی htdocs یه پوشه به اسم upload بسازید و فایل upload_file.php و همچنین یک پوشه ی upload رو داخلش ایجاد کنید و آدرس رو به اسکریپت یونیتی بدید.
---
هرکی مشکل داشت بپرسه ازم
اینم یک شات از صحنه ی بعد از آپلود :
![[تصویر: after_upload.jpg]](http://s5.picofile.com/file/8146476768/after_upload.jpg)