尝试使用POSTFILE和PHP以及PHP_Compat

时间:2015-06-30 17:04:46

标签: php android app-inventor

以下是App Inventor中的POSTFILE代码: https://www.dropbox.com/s/9gndlxibrg8f85b/uploadimage.jpg?dl=0

这是PHP脚本:

<?php

$ACCESSKEY="uhuh";

header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');

if($_GET['p']==$ACCESSKEY){
  // this is the workaround for file_get_contents(...)
  require_once ($_SERVER['DOCUMENT_ROOT'].'/php/PHP_Compat/Compat/Function/file_get_contents.php');

  $data = php_compat_file_get_contents('php://input');

  $filename = $_SERVER['DOCUMENT_ROOT']."/images/".$_GET['filename'];

  if (file_put_contents($filename,$data)) {
    if (filesize($filename) !=0) {

      echo "File transfer completed";

    } else {
      //header("HTTP/1.0 400 Bad Request");
      echo "Error: File is empty.";
    }
  } else {
    //header("HTTP/1.0 400 Bad Request");
    echo "Error: File transfer failed.";
  }
} else {

  //header("HTTP/1.0 400 Bad Request");
  echo "Error: Access denied";     //reports if accesskey is wrong
}

?>    

我在这里使用PHP_Compat: http://pear.php.net/package/PHP_Compat/

当我尝试使用桌面模拟器时,它会返回错误“411:需要内容长度”。但是当我尝试在手机上使用apk时,从手机中选择图像并按下UPLOAD后,文件夹(右图)也会在右侧文件夹中的服务器上创建,但大小始终为零,脚本返回“错误传输失败”

甚至打电话给GoDaddy,并认为这可能是由于某些服务器或PHP设置,但他们无能为力。我想也许改变PHP变量upload_tmp_dir可能有所帮助,但不能这样做。

我真的需要为我的应用做这项工作,所以希望有人可以提供帮助。

0 个答案:

没有答案