C# Unity-Android-从手机存储器读取图像
我正在编写一个脚本,应该上传一个图像。 以下是我到目前为止的情况:C# Unity-Android-从手机存储器读取图像,c#,android,unity3d,C#,Android,Unity3d,我正在编写一个脚本,应该上传一个图像。 以下是我到目前为止的情况: //This is how I am calling the UploadImage function yield return StartCoroutine(UploadImage(Application.persistentDataPath + "/DCIM/Camera/20180209_210616.jpg")); //This is the function itself IEnumerator UploadImag
//This is how I am calling the UploadImage function
yield return StartCoroutine(UploadImage(Application.persistentDataPath + "/DCIM/Camera/20180209_210616.jpg"));
//This is the function itself
IEnumerator UploadImage(string filepath){
WWWForm form = new WWWForm ();
byte[] bytes = File.ReadAllBytes(filepath);
Debug.Log (bytes.Length);
form.AddField ("submit", filepath);
form.AddBinaryData ("fileToUpload", bytes, "sp.jpeg", "image/jpg");
Debug.Log (form);
WWW www = new WWW (UploadImageURL, form);
yield return www;
if (www.error == null) {
Debug.Log ("Upload done " + www.isDone);
} else {
Debug.Log ("Error " + www.error);
}
}
当我在我的计算机上执行这段代码并将类似于“C:/sp.jpg”的内容传递给UploadImage()函数时,这一切都可以完美地工作
当我在手机上尝试此功能时,它就不再工作了,我假设文件路径有问题,但我不明白是什么原因
有什么想法吗?
谢谢同样,您应该向程序中添加loadimage系统,以了解该路径是否真的指向该路径:使用我使用的路径,它不会打扰我XD:
http://www.mediafire.com/file/id6lrsg4elxoajm/WindowUtility.cs/file
编辑:
它100%是我的,不会打扰我,别担心您可能会忘记将此权限添加到AndroidManifest.xml中。@BILA1409谢谢您的回答,不过我使用的是Unity,我还没有编写任何清单。这是我应该做的吗?你可以在Unity的播放器设置中这样做。将“写入权限”更改为“外部”,它将为您将其添加到清单中。顺便说一下,我认为这不是问题所在。你没有解释到底是什么不起作用,所以不可能帮助你。使用
Debug.Log
找出代码的哪部分不起作用。@程序员我已经更改了Unity中的写入权限。我已经添加了调试日志,现在看起来像是函数错误byte[]bytes=File.ReadAllBytes(filepath);如果我执行类似File.Exists()的检查,它将返回True,因此它正在读取某些内容请再次阅读我的注释。它只是解释如何做@bila1409提到的事情,因为您不知道如何在Unity中做到这一点。我甚至提到这不是问题。。。。