有很多人提出与此问题相关的问题,但没有一个问题足以让我解决我的问题。
我已经基于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外,您看到的所有内容都是vanilla,开箱即用,来自phonegap的未经改动的工作示例。手机是一个相同的192网络,并且明确地尝试运行任何upload.php我尝试
基本上我想要获取此文件,并使用upload.php文件将其移至
http:// 192.168.1.91/injury/sample_images/xxxx.jpg(间隔http不知道如何阻止它链接)
我已经检查了权利,他们都没问题,我的config.html允许所有域名
任何人都可以请我解决我的痛苦,并给我一个示例upload.php,它将使用上面的上传代码,只是对相机图像做一些事情。
一旦我能得到一个有效的例子,我就可以准确地分解正在发生的事情并开始学习过程。
另外,如果有人可以提供一个有效的应用程序..同时使用应用程序和服务器端代码作为教程,我很高兴参与研究。
许多人提前感谢人们为此付出的代价。我在我的智慧结束时,当我能够完成这件事时,让自己陷入困境。
答案 0 :(得分:0)
我决定使用base64字符串的发布方法。但我确实发现,在这种情况下,更可能是我的开发服务器上的设置可能是原因。