Php 使用phonegap提交数据和图像的表单

Php 使用phonegap提交数据和图像的表单,php,jquery,mysql,ajax,cordova,Php,Jquery,Mysql,Ajax,Cordova,我正在使用phonegap、html、ajax、jquery、mysql和php 在我的Phonagep应用程序中,我有一个包含用户名、密码和用户照片的表单 我想从html页面提交此表单。比如register.html 表单数据应该发送到php页面,该页面上传到我的服务器上名为services的文件夹中,假设路径为“” 此页面应处理mysql插入过程,并将其上载到同一服务器上的数据库 在这台服务器上,我还有一个名为images的文件夹,用户图片应该上传到这个文件夹中,它的完整图片应该插入到mys

我正在使用phonegap、html、ajax、jquery、mysql和php

在我的Phonagep应用程序中,我有一个包含用户名、密码和用户照片的表单

我想从html页面提交此表单。比如register.html

表单数据应该发送到php页面,该页面上传到我的服务器上名为services的文件夹中,假设路径为“”

此页面应处理mysql插入过程,并将其上载到同一服务器上的数据库

在这台服务器上,我还有一个名为images的文件夹,用户图片应该上传到这个文件夹中,它的完整图片应该插入到mysql数据库中

我曾尝试使用ajax将用户名和密码发布到此页面,并成功插入数据。但我在使用serialize()时面临数据问题

我也不能用ajax上传图像

我用了这个密码。。我在不发送图像路径的情况下收到用户名和密码的响应,但在发送图像路径时没有发生任何事情

<html>
<head>
    <title>Basic Upload</title>
    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type='text/javascript' src='http://code.jquery.com/jquery-latest.pack.js'></script>
    <script type="text/javascript" charset="utf-8">


function sub(e){

var ft = new FileTransfer();   
var options = new FileUploadOptions();
options.fileKey="myImg";
options.fileName=$('#myImg').val();
options.mimeType="image/jpeg";  
options.mimeType="image/png"; 
options.chunkedMode = false;
var PATH = options.fileName;

var form_data= new Object();
form_data['user_name']= 'User';
form_data['password']= '1234';
form_data['user_image_path']= PATH;

var url = "http://localhost/stacktest/register.php"; 
$.getJSON(""+url+"?callback=?"+"&form_data="+JSON.stringify(form_data),
    function (response) {
        try {
            // Get Your Response
            alert(response);
        }
        catch(ex) {
            console.log(ex);
        }
   }
);

}
</script>
</head>
<body>

<form method="post" enctype="multipart/form-data" id="registerForm" onsubmit="sub(this.value);">

    <input type="file" name="myImg" id="myImg" />

    <input type="submit" value="Upload" name="submitButton" id="submitButton" />


</form>
</body>
</html>

基本上传
职能小组(e){
var ft=新文件传输();
var options=new FileUploadOptions();
options.fileKey=“myImg”;
options.fileName=$('#myImg').val();
options.mimeType=“image/jpeg”;
options.mimeType=“image/png”;
options.chunkedMode=false;
var PATH=options.fileName;
var form_data=新对象();
表单数据['user\u name']='user';
表格_数据['password']='1234';
表单数据['user\u image\u path']=路径;
变量url=”http://localhost/stacktest/register.php"; 
$.getJSON(“+url+”?回调=?“+”&form_data=“+JSON.stringify(form_data)),
功能(响应){
试一试{
//得到你的回应
警报(响应);
}
捕获(ex){
控制台日志(ex);
}
}
);
}

您应该使用带有Json的PHP Webservice来执行以下任务

访问Web服务,如:-

<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script>  
var PATH = 'Image Path';
var form_data= new Object();
form_data['user_name']= 'User';
form_data['password']= '1234';
form_data['user_image_path']= PATH;

var url = "http://localhost/stacktest/register.php";
$.getJSON(""+url+"?callback=?"+"&form_data="+JSON.stringify(form_data),
    function (response) {
        try {
            // Get Your Response
            alert(response);
        }
        catch(ex) {
            console.log(ex);
        }
   }
);
</script> 

变量路径='图像路径';
var form_data=新对象();
表单数据['user\u name']='user';
表格_数据['password']='1234';
表单数据['user\u image\u path']=路径;
变量url=”http://localhost/stacktest/register.php";
$.getJSON(“+url+”?回调=?“+”&form_data=“+JSON.stringify(form_data)),
功能(响应){
试一试{
//得到你的回应
警报(响应);
}
捕获(ex){
控制台日志(ex);
}
}
);
创建PHP Web服务(register.PHP),如:-

<?php
$form_data = json_decode(stripslashes($_GET["form_data"]));
$user_name = $form_data->user_name;
$password = $form_data->password;
$user_image_path = $form_data->user_image_path;

//Perform Your Task like Insert into Database etc

$res= 'Your Response which you want to return'; 
echo $_GET["callback"].'('.json_encode($res).')';

我认为您的路径不正确,因为webservice无法访问您应用程序中的文件路径。要上载文件,请阅读更多关于

[更新]

您可以从下载工作项目


阅读

谢谢编辑:)图像路径是什么?我是否应该使用phonegap filetransfer?图像路径是您的文件url,如果您不知道图像url,则要上载该文件url。你可以使用phonegap文件传输而不是curl来下载。我的图像应该从用户设备中选择,然后上传到服务器上的文件夹。我在html中使用了输入文件。你能给我一个工作示例或演示吗?你应该使用phonegap文件传输我使用alert来检查路径和图像名称,如下所示在发送到php端之前:C:\fakepath\image.jpg这是错误的路径吗?是的,因为路径
C:\fakepath\image.jpg
分别对应于您的设备,Web服务无法访问它。你应该使用像
www.some_domain.com/fakepath/image.jpg这样的文件路径,我想它会像你期望的那样工作。好的,在图像上传过程中我怎么做??如果不需要将图像存储在服务器上,而只需将图像路径保存在数据库中,则图像将从我的设备上载到我的服务器中的文件夹中。每次通过webservice选择路径并从设备而不是服务器访问映像时。