Unity上傳文件到服務器需要注意的地方

 

IEnumerator uploadFile(string url,string fileName)函數是上傳文件到服務器

    需要注意的是
    form.AddField("name", filename, Encoding.UTF8);
    這一句的 filename 的名字至關重要,就是說上傳的時候filename叫什麼名字,
    從服務器下載這個文件的時候,filename也叫什麼名字,必須保持一致,帶不帶文件後綴都無所謂

/// <summary>
    /// 上傳文件到服務器
    /// </summary>
    /// <param name="url">服務器地址</param>
    /// <param name="fileName">上傳的文件名稱,不包括後綴</param>
    /// <returns></returns>
    IEnumerator uploadFile(string url,string fileName)
    {
        yield return new WaitForSeconds(0.1f);

        WWWForm form = new WWWForm();
       string filepath = Application.dataPath + "/StreamingAssets/VR_Chuangke_Student/" + fileName + ".xml";
        byte[] bt = File.ReadAllBytes(filepath);
        
        form.AddBinaryData("fileName", bt);
        
        form.AddField("name", filename, Encoding.UTF8);
        form.AddField("type", 2);
        WWW www = new WWW(url, form);
        yield return www;
        if (www.isDone && www.error == null)
        {
            Debug.Log("xml文件上傳成功");
           
        }
        else
        {
            Debug.Log(www.error);
        }
    }

    /// <summary>
    /// 從服務器下載中文件
    /// </summary>
    /// <param name="url">服務器地址</param>
    /// <param name="fileName">下載的文件名稱,並不一定是文件的全稱,須與上傳時候的fileName的名稱保持一致</param>
    /// <returns></returns>
    IEnumerator downloadFile(string url, string fileName)
    {
        WWWForm form = new WWWForm();
        form.AddField("fileName", fileName);
        form.AddField("type", 2);
        WWW www = new WWW(url, form);
        yield return www;
        if (www.isDone && www.error == null)
        {
            Debug.Log("獲取文件成功");
            Debug.Log(www.bytes);

        }
        else
        {
            Debug.Log(www.error);
        }
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章