【发布时间】:2017-05-21 10:19:30
【问题描述】:
伙计们,我在使用 swift3 通过 alamofire 4 发布 json 数据时遇到问题,以及使用 php 在 XAMPP 服务器端检索 json 数据的问题。 我的 swift 3 代码确实在 XAMPP 触发了 php 脚本,但不知何故我无法通过 php 中的 $_POST 变量获取它 这是我的代码,
func uploadImage(image: UIImage){
//Now use image to create into NSData format
let imageData:NSData = UIImagePNGRepresentation(image)! as NSData
//convert the nsdata to base64 encoded string
let strBase64:String = imageData.base64EncodedString(options: .lineLength64Characters)
// let parameters = ["image": strBase64] as Dictionary
let parameters = ["image": strBase64]
print(strBase64)
Alamofire.request("http://localhost/Test/api/UploadPhoto.php",method: .post, parameters: parameters, encoding: JSONEncoding.default).response { response in
print(response)
}
}
这是我的服务器端代码(脚本确实是由 alamofire 的调用触发的,但不知何故我无法通过调用 $_POST["image"] 获取数据)
<?php
//scripts below did get triggered, but can't get the json data through calling $_POST["image"];
$imageString = $_POST["image"];
$filename_path = md5(time().uniqid()).".png";
$data = base64_decode($imageString);
file_put_contents('../AllImages/'.$filename_path, $data);
echo json_encode($_POST["image"]);
?>
如果可能,请帮帮我,我已经挣扎了将近一个星期,但找不到很多线索 谢谢
【问题讨论】:
-
您在 Chrome Inspector 中查看过网络请求吗?你看过
var_dump($_POST);吗? -
我是这里的新手,但是我们如何在 xampp 服务器检索请求时检查它的控制台输出?我也尝试使用邮递员将 json 数据发送到 php 脚本,效果很好,但是当我从 ios 端发送请求时,它无法从 $_POST
-
XAMPP 不检索请求。你的浏览器可以。但是,您可以查看 apache 访问日志。然而,我的评论是关于 Chrome Inspector。这是谷歌Chrome浏览器中的一款软件。
-
嗨 Daan,非常感谢您的帮助,我查看了 apache 的 access_log,这是我得到的:::::1 - - [06/Jan/2017:21:58:41 +1030] "POST /Test/api/UploadPhoto.php HTTP/1.1" 200 290 这对我来说没有多大意义
-
对于我坚持使用您的浏览器,我深表歉意。我假设您正在构建一个 Web 应用程序。我看到你现在正在构建一个 iOS 应用程序。您也许可以使用
error_log(json_encode($_POST));来查看发送到您的 PHP 脚本的数据。
标签: php json post swift3 alamofire