猿问

如何使用 UnityWebRequest.Post() 将多个文件上传到服务器;

我正在尝试使用 UnityWebRequest.Post() 上传多个文件,这是我的代码。


 public void UploadFiles()

 {

     string[] path = new string[3];

     path[0] = "D:/File1.txt";

     path[1] = "D:/File2.txt";

     path[2] = "D:/File3.txt";


     UnityWebRequest[] files = new UnityWebRequest[3];

     WWWForm form = new WWWForm();


     for (int i = 0; i < files.Length; i++)

     {

         files[i] = UnityWebRequest.Get(path[i]);

         form.AddBinaryData("files[]", files[i].downloadHandler.data, Path.GetFileName(path[i]));

     }


     UnityWebRequest req = UnityWebRequest.Post("http://localhost/File%20Upload/Uploader.php", form);

     yield return req.SendWebRequest();


     if (req.isHttpError || req.isNetworkError)

         Debug.Log(req.error);

     else

         Debug.Log("Uploaded " + files.Length + " files Successfully");

 }

然而,文件是在目的地创建的,大小为 0 字节。


这是我的 Uploader.php 代码


 <$php

   $total = count($_FILES['files']['name']);

   $uploadError = false;

   for ( $i = 0; $i < $total; $i++)

   {

     $tmpFilePath = $_FILES['files']['tmp_name'][$i];


     if ($tmpFilePath != "")

     {

         $newFilePath = "Uploads/".$_FILES['files']['name'][$i];

         if (!move_uploaded_file($tmpFilePath, $newFilePath))

             $uploadError = true;

     }

   }

   if ($uploadError)

       echo "Upload Error";

   else

       echo "Uploaded Successfully";

 ?>

我使用这个 HTML 示例作为参考。而在浏览器中,HTML 代码完美运行。Unity 中存在问题。


 <form enctype="multipart/form-data" action="Uploader.php" method="POST">

     Choose a file to Upload:

     <input type="file" name="files[]" multiple="multiple" /><br>

     <input type="submit" value="Upload File" />

 </form>


喵喵时光机
浏览 947回答 1
1回答
随时随地看视频慕课网APP
我要回答