«یا اللهُ یا رَبِّ یا حَیُّ یا قَیّوم یا ذَالجَلالِ وَ الاکرام اَسئَلُکَ بِاسمِکَ اَلعَظیم اَلاَعظَم اَن تَرزُقَنی رِزقاً حَلالاً طَیِّباً بِرَحمَتِکَ الواسِعَه یا اَرحَمَ الرّاحِمِین.»
آپلود عکس در یونیتی :: گیم اور _ بازیسازی با unity + مطالب متفرقه

گیم اور _ بازیسازی با unity + مطالب متفرقه

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

به نام خدا
---
سوالی بود بذارید
نظر خصوصی نذارید
پاسخش سخته

بایگانی
پیوندها

۱ مطلب با کلمه‌ی کلیدی «آپلود عکس در یونیتی» ثبت شده است

منبع :gameover.blog.ir

برای اینکار ابتدا یک دوربین توی صحنه داریم.
یک فایل تصویری به اسم screenShot.png در مسیر جاری داریم.
یک اسکریپت csharp برای ایجاد دکمه ی آپلود می سازیم به اسم test.cs می سازیم و ربطش می دیم به دوربین:
[تصویر: unity_design_script_upload.jpg]
سورس اسکریپت سیشارپ 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]

شما می تونید روی pergig.ir یه هاست رایگان php بگیرید و توی پوشه ی htdocs یه پوشه به اسم upload بسازید و فایل upload_file.php و همچنین یک پوشه ی upload رو داخلش ایجاد کنید و آدرس رو به اسکریپت یونیتی بدید.
---
هرکی مشکل داشت بپرسه ازم
اینم یک شات از صحنه ی بعد از آپلود :
[تصویر: after_upload.jpg]
۱ نظر موافقین ۰ مخالفین ۰ ۲۲ آبان ۹۴ ، ۲۲:۳۹
مدیرکل