作为大学项目的一部分,我通过用于Android应用程序的php web服务连接到gres数据库。其中一个要求是需要使用应用程序将图像和文本文件上载到服务器。
这应该在java中完成吗?如在没有任何php交互的情况下直接上传到服务器的图像?
或者应该将图像编码为json或其他格式并在查询字符串中发送php脚本?或者这甚至可能吗?
注意:图像不需要存储在数据库中,只需要存储在文件路径中。
任何帮助都非常感谢!!
答案 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!";
}