【发布时间】:2014-09-09 09:19:44
【问题描述】:
最近我开发了一个 iOS 应用,在模拟器上进行测试。应用程序录制音频,我想将录制的音频存储在网络服务器上。由于我在模拟器上测试应用程序,因此我想将录制的音频存储在 localhost 服务器上。我有一个 PHP 网页,它有一个上传文件的表单和一个处理 post 方法的同一页面上的脚本。我使用该本地网页 URL 将文件从模拟器传输到本地主机服务器。我也确实使用了文件传输插件并将其注册在 config.xml 中。到目前为止它不起作用。所以我的第一个问题是:是否可以将录制的音频从模拟器传输到本地主机服务器?还是我需要从 iOS 设备到真正的共享托管服务器对其进行测试?谢谢!
javascript:
var fileURL = "myrecording.wav";
var uri = encodeURI("http://www.localhost.dev/site/test/index.php");
var options = new FileUploadOptions();
options.fileKey="file";
options.fileName=fileURL.substr(fileURL.lastIndexOf('/')+1);
//options.fileName="file";
//options.mimeType="text/plain";
var headers={'headerParam':'headerValue'};
options.headers = headers;
var ft = new FileTransfer();
ft.onprogress = function(progressEvent) {
if (progressEvent.lengthComputable) {
loadingStatus.setPercentage(progressEvent.loaded / progressEvent.total);
} else {
loadingStatus.increment();
}
};
ft.upload(fileURL, uri, win, fail, options);
function win(r) {
alert("Code = " + r.responseCode + " Response = " + r.response + " Sent = " + r.bytesSent);
}
function fail(error) {
alert("An error has occurred: Code = " + error.code + ", upload error source " + error.source + ", upload error target " + error.target);
}
http://www.localhost.dev/site/test/index.php 上带有表单处理程序的 PHP 脚本:
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST' ):
if ($_FILES["file"]["error"] > 0) {
echo "Error: " . $_FILES["file"]["error"] . "<br>";
} else {
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Stored in: " . $_FILES["file"]["tmp_name"] . " <br>";
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
endif;
?>
【问题讨论】:
-
您需要 iOS 设备上传到您的服务器(本地/任何其他)。
-
意思是我需要在iOS设备上测试而不是在本地模拟器上测试?
标签: php ios localhost emulation file-transfer