有很多人提出与此问题相关的问题,但没有一个人足以让我解决我的问题。
我已经创建了一个基于 phonegap 的功能齐全的 HTML5 智能手机应用程序,用于......不寒而栗......黑莓使用服务器端 php 脚本将数据很好地发送到远程 MYSQL 服务器。
但是,我想提供上传照片的选项,因为这是预防伤害,危险需要拍照。这是一个非商业产品,它是现代智能手机技术的一个工作示例,并展示了如何将一个应用程序轻松移植到各种智能手机。黑莓是常见的手机,必须是最好的例子。
我无法为爱或金钱找到任何应用程序和 php 服务器端脚本的工作示例。
我从 CORDOVA 示例文件中提取的示例拍摄了一张照片,我可以在我的应用程序中看到生成的缩略图,这一切都很甜蜜(基于您在下面看到的所有代码),但我不知道我需要编程什么让我的upload.php 做点什么。我尝试的一切都失败了,错误代码为 3 和 1..
这是 webapp 的重要代码。
HTML
<h3>navigator.camera</h3>
<input type="button" value="Get Photo (Data)" onclick="capturePhoto();return false;" />
<input type="button" value="Get Photo (URI)" onclick="capturePhotoURI();return false;" />
<img style="display:none;width:120px;height:120px;" id="cameraImage" src="" />
<p id="uploadProgress"></p>
<input style="display:none;" id="uploadButton" type="button" value="Upload" onclick="uploadImage();return false;" />
JAVASCRIPT
function capturePhotoURI() {
navigator.camera.getPicture(onCapturePhotoURISuccess, fail,
{ destinationType: Camera.DestinationType.FILE_URI, quality: 50 });
}
function onCapturePhotoURISuccess(imageURI) {
if (imageURI != null) {
var smallImage = document.getElementById('cameraImage');
var uploadButton = document.getElementById('uploadButton');
// Unhide image elements
smallImage.style.display = 'block';
uploadButton.style.display = 'block';
// Show the captured photo
// The inline CSS rules are used to resize the image
smallImage.src = imageURI;
}
}
function uploadImage() {
var smallImage = document.getElementById('cameraImage');
if (smallImage.src && smallImage.src !== "") {
var f = new FileTransfer();
f.upload(
// file path
smallImage.src,
// server URL - update to your own, and don't forget to
// include your domain in an access element in config.xml
"http://192.168.1.91/upload.php",
// success callback
function(result) {
document.getElementById('uploadProgress').innerHTML =
result.bytesSent + ' bytes sent';
alert(result.responseCode + ": " + result.response);
},
// error callback
function(error) {
alert('error uploading file: ' + error.code);
},
// options
{ fileName: 'myImage.jpg',
params: { 'username':'jtyberg' }
});
}
}
上面的服务器 ID 是正确的(它是我自己的开发服务器的正确翻译,所以我没有使用 localhost,因为我需要它是准确的)。除了服务器 IP 之外,您看到的所有内容都是普通的、开箱即用的、来自 phonegap 的未更改的工作示例。手机是一个相同的 192 网络,并且肯定会尝试运行我尝试的任何 upload.php
基本上我想拿这个文件,并使用upload.php文件将它移到
http : // 192.168.1.91/injury/sample_images/xxxx.jpg (在不知道如何停止链接的情况下分隔 http)
我检查了权限,它们都正常,我的 config.html 允许所有域
任何人都可以让我摆脱痛苦并给我一个示例upload.php,它将使用上面的上传代码并使用相机图像做一些事情。
一旦我能得到一个有效的例子,我就可以准确地分解正在发生的事情并开始学习过程。
或者,如果有人可以提供一个工作应用程序.. 应用程序和服务器端代码用作教程,我很乐意做相关的研究。
非常感谢人们为此付出的任何时间。我束手无策,当我应该能够完成这件事时,让自己陷入了正确的混乱之中。