JSON - 通过java上传带有php web服务的图像

时间:2014-05-06 19:20:38

标签: java php android json web-services

作为大学项目的一部分,我通过用于Android应用程序的php web服务连接到gres数据库。其中一个要求是需要使用应用程序将图像和文本文件上载到服务器。

这应该在java中完成吗?如在没有任何php交互的情况下直接上传到服务器的图像?

或者应该将图像编码为json或其他格式并在查询字符串中发送php脚本?或者这甚至可能吗?

注意:图像不需要存储在数据库中,只需要存储在文件路径中。

任何帮助都非常感谢!!

1 个答案:

答案 0 :(得分:1)

你可以通过在json对象中放入图像的base64编码然后将它发布到PHP并在服务器上解码它来使用json。但请注意,对于大文件,这可能会很慢甚至无法实现。

更好的方法可能是发布二进制数据。这里有一个很好的例子:How do I send a file in Android from a mobile device to server using http?

<强>更新
以下是一个不安全的例子。但出于教育目的,它应该没问题。为了使其更安全,您应该检查文件是否实际是从应用程序发送的,也许您还想检查上传的文件实际上是图像,而不是恶意PHP代码或您不想要的其他内容。服务器

$target_path = "uploads/";
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['uploadedfile']['name']). 
        " has been uploaded";
} else {
    echo "There was an error uploading the file, please try again!";
}