美文网首页
unity图片上传相关

unity图片上传相关

作者: 左岸仙缘 | 来源:发表于2020-03-26 21:44 被阅读0次

java端可以运用第三库 OkHttpClient

File file = new File(filePath);
        RequestBody fileBody = RequestBody.create(MediaType.parse("image/jpeg"), file);
        RequestBody requestBody = new MultipartBody.Builder()
                .setType(MultipartBody.FORM)
                .addFormDataPart("image/jpeg", file.getName(), fileBody)
                .build();
        Request request = new Request.Builder()
                .url(uploadUrl)
                .post(requestBody)
                .build();

        final okhttp3.OkHttpClient.Builder httpBuilder = new OkHttpClient.Builder();
        OkHttpClient okHttpClient  = httpBuilder
                //设置超时
                .connectTimeout(100, TimeUnit.SECONDS)
                .writeTimeout(150, TimeUnit.SECONDS)
                .build();
        okHttpClient.newCall(request).enqueue(new Callback() {

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                Log.d("FileUploader", response.protocol() + " " +response.code() + " " + response.message());
                Headers headers = response.headers();
                for (int i = 0; i < headers.size(); i++) {
                    Log.d("FileUploader", headers.name(i) + ":" + headers.value(i));
                }
                Log.d("FileUploader", "onResponse: " + response.body().string());

                String uploadfile = uploadUrl + fileName + ".jpg";
                Log.i("FileUploader uploadfile", uploadfile+"");

                if(response.code() == 200) {
                    // 上传成功相关处理
                }
            }

            @Override
            public void onFailure(Call arg0, IOException e) {
                Log.d("FileUploader", "onFailure: " + e.getMessage());

            }

        });

ios图片上传参照以下网址:
https://blog.csdn.net/liudongxinios/article/details/52033356

Unity UnityWebRequest也可以实现图片上传

          string[] path = new string[1];
          path[0] = Application.persistentDataPath + "/" + fileName;
            Debug.Log("uploadfile php path:" + path[0]);

            UnityWebRequest[] files = new UnityWebRequest[path.Length];
            WWWForm form = new WWWForm();

            FileStream fs = new FileStream(path[0], FileMode.OpenOrCreate);  
            byte[] imgByte = new byte[fs.Length];  
            fs.Read(imgByte, 0, imgByte.Length);  
            Texture2D tex = new Texture2D( 800, 800, TextureFormat.RGB24, false );
            try  
            {  
                tex.LoadImage(imgByte);  
            }  
            catch (Exception ex)  
            {  
            } 
            byte[] bytes = tex.EncodeToJPG();
            GameObject.Destroy( tex );

            for (int i = 0; i < files.Length; i++)
            {
                form.AddBinaryData("files[]", bytes, Path.GetFileName(path[i]));
            }

            UnityWebRequest req = UnityWebRequest.Post(_uploadUrl, form);
            yield return req.SendWebRequest();

            if (req.isHttpError || req.isNetworkError)
                Debug.Log("uploadfile" + req.error);
            else
            {
                Debug.Log("uploadfile Uploaded " + files.Length + " files Successfully");
            }

服务端可以采用java,php等方式
附上代码:

<?php
   $total = count($_FILES['files']['name']);
   $uploadError = false;
   for ( $i = 0; $i < $total; $i++)
   {
     $tmpFilePath = $_FILES['files']['tmp_name'][$i];

     if ($tmpFilePath != "")
     {
         $newFilePath = "./".$_FILES['files']['name'][$i];
         if (!move_uploaded_file($tmpFilePath, $newFilePath))
             $uploadError = true;
     }
   }
   if ($uploadError)
       echo "Upload Error";
   else
       echo "Uploaded Successfully";
?>

相关文章

网友评论

      本文标题:unity图片上传相关

      本文链接:https://www.haomeiwen.com/subject/olmfuhtx.html