Как получить доступ к файлу, сохраненному на сервере и локальном? - PullRequest
0 голосов
/ 12 сентября 2018

Я работаю над приложением iOS для Unity.В конечном итоге приложение сможет загружать, импортировать и загружать файлы .obj, сохраненные на сервере моего сайта.Но в настоящее время я занимаюсь локальной разработкой, поэтому файлы сохраняются в файловой системе моего ноутбука (на стороне локального сервера моего сайта).

Мой вопрос заключается в том, что я должен использовать для доступа к этим файлам. Я использовал WWW для доступа к нему, но, похоже, он не работает.Пожалуйста, смотрите мой код ниже.

public void OnClick()
     {  
        StartCoroutine(ImportObject());
     } 

IEnumerator ImportObject (){
           Debug.Log("being called");

    WWW www = new WWW("http://localhost:8080/src/server/uploads/user-id/file name");
    Debug.Log("being called");

    yield return www;

    Debug.Log("NOT BEING CALLED !");

    **//Everything below here seems not being called...**

    if (string.IsNullOrEmpty(www.error)) {
        Debug.Log("Download Error");
    } else {
        string write_path = Application.dataPath + "/Objects/";
        System.IO.File.WriteAllBytes(write_path, www.bytes);
        Debug.Log("Success!");
    }

    GameObject spawnedPrefab;
    Mesh importedMesh = objImporter.ImportFile(Application.dataPath + "/Objects/");
    spawnedPrefab = Instantiate(emptyPrefabWithMeshRenderer);
    spawnedPrefab.transform.position = new Vector3(0, 0, 0);
    spawnedPrefab.GetComponent<MeshFilter>().mesh = importedMesh;
}

1 Ответ

0 голосов
/ 15 сентября 2018

Я попробовал несколько решений из Интернета и, наконец, нашел правильный способ загрузки и сохранения файла, используя следующий код:

IEnumerator DownloadFile(string url) {

        var docName = url.Split('/').Last(); 
        var uwr = new UnityWebRequest(url, UnityWebRequest.kHttpVerbGET);

        string modelSavePath = Path.Combine(Application.dataPath, "Objects");
        modelSavePath = Path.Combine(modelSavePath, docName);

        //Create Directory if it does not exist
            if (!Directory.Exists(Path.GetDirectoryName(modelSavePath)))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(modelSavePath));
            }

        var dh = new DownloadHandlerFile(modelSavePath);
        dh.removeFileOnAbort = true; 
        uwr.downloadHandler = dh;  

        yield return uwr.SendWebRequest();

        if (uwr.isNetworkError || uwr.isHttpError)
            Debug.LogError(uwr.error);
        else
            Debug.Log("File successfully downloaded and saved to " + modelSavePath);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...