Javascript 使用表单从Jquery Mobile Phonegap应用程序附加图像?

Javascript 使用表单从Jquery Mobile Phonegap应用程序附加图像?,javascript,php,jquery-mobile,phonegap-build,Javascript,Php,Jquery Mobile,Phonegap Build,在我的应用程序JQM+Phonegap中,我创建了一个表单,用户可以使用相机拍摄图像,并希望通过附加图像的php电子邮件提交表单。我正在获取表单字段,但没有图像 我发现了这个文件上传的例子,并尝试使用一些php <form action="....onmyserver..../bcmc-wnv-mailer.php" method="post" data-ajax="false" id="reportBirdForm" enctype="multipart/form-data">

在我的应用程序JQM+Phonegap中,我创建了一个表单,用户可以使用相机拍摄图像,并希望通过附加图像的php电子邮件提交表单。我正在获取表单字段,但没有图像

我发现了这个文件上传的例子,并尝试使用一些php

<form action="....onmyserver..../bcmc-wnv-mailer.php" method="post" data-ajax="false" id="reportBirdForm" enctype="multipart/form-data">
        <label for="textinput" class="ui-hidden-accessible">Name:</label>
        <input type="text" name="f2_fullName" id="f2_fullName" value="" placeholder="Full Name *" required />

        <label for="f2_phone" class="ui-hidden-accessible">Phone:</label>
        <input type="tel" name="f2_phone" id="f2_phone" value="" placeholder="Phone #" required/>
        <label for="f2_email" class="ui-hidden-accessible">Phone:</label>
        <input type="email" name="f2_email" id="f2_email" value="" placeholder="Email Address *" required />
        <a href="#mapPage" onClick="locFormFieldName='deadBirdLocation';" class=" ui-btn ui-btn-icon-right ui-icon-location ui-corner-all ui-nodisc-icon" data-transition="pop">Click to find Location Address...</a>
        <label for="f2_locationAddress" class="ui-hidden-accessible">Location Address:</label>
        <input type="text" name="f2_locationAddress" id="f2_locationAddress" value="" placeholder="Location Address *" />
        <input type="hidden" name="f2_GPSLocation" id="f2_GPSLocation" value="" />
        <select name="f2_numBirds" id="f2_numBirds" data-native-menu="false" data-theme="c" required>
            <option>Number of Birds?</option>
            <option value="1">One(1)</option>
            <option value="2">Two(2)</option>
            <option value="3">Three(3)</option>
            <option value="4+">Four+(4+)</option>
        </select>
        <label for="f2_additionalDetails" class="ui-hidden-accessible">Description:</label>
        <textarea name="f2_additionalDetails" id="f2_additionalDetails" placeholder="Additional Details" style="height:80px !important;" ></textarea>

        <a href="" onClick="capturePhoto();" class="ui-btn ui-btn-icon-right ui-icon-camera ui-nodisc-icon ui-corner-all" id="photoBtn" >Attach Photo</a>
        <input type="hidden" name="f2_photoURI" id="f2_photoURI" value="" placeholder="Photo URI"/>

        <div style="border:thin rgba(172,172,172,1.00) solid; padding:0.5em; border-radius:0.9em;"><center><img src="img/imgPlaceholder.jpg" id="photoPreview" style="width:50%;"/></center></div>

        <button class="ui-btn ui-corner-all" type="submit" id="submit">Submit Form</button>

    </form>
这是我的PHP

<?php
// VARS

$BCMC_email="me@myemail.com";

$email_subject="Bird Report - BCMC Mobile App";


$FullName=$_POST["f2_fullName"];
$FromEmail=$_POST["f2_email"]; 
$Phone=$_POST["f2_phone"];
$LocationAddress=$_POST["f2_locationAddress"];
$GPSLocation=$_POST["f2_GPSLocation"]; 
$NumberOfBirds=$_POST["f2_numBirds"];
$AdditionalDetails=$_POST["f2_additionalDetails"]; 

// get photo attachment
$attachment = $field_file = $_POST['f2_photoURI'];
$tmpName = $_FILES['f2_photoURI']['tmp_name'];
$fileType = $_FILES['f2_photoURI']['type'];
$fileName = $_FILES['f2_photoURI']['name']; 


// setup email header
//$Headers = "From:" .$FromEmail;

function clean_string($string) {
  $bad = array("content-type","bcc:","to:","cc:","href");
  return str_replace($bad,"",$string);
}

// email to BCMC
$email_message .= "You have recieved a Bird Report through the BCMC Mobile App\n";
$email_message .= "\n\n";
$email_message .= "Name: ".$FullName."\n";
$email_message .= "Address: ".$LocationAddress."\n";
$email_message .= "GPS Location: ".$GPSLocation."\n";
$email_message .= "E-mail: ".$FromEmail."\n";
$email_message .= "Telphone: ".$Phone."\n\n";
$email_message .= "Number of Birds?  ".$NumberOfBirds."\n\n";
$email_message .= "Additional Details:\n    ".clean_string($AdditionalDetails)."\n\n";
$email_message .= "\n\n";

// create email headers
 $headers = 'From: '.$FromEmail."\r\n".
        'Reply-To: '.$FromEmail."\r\n" .
        'X-Mailer: PHP/' . phpversion();

if (!empty($tmpName)) 
{
      /* Reading file ('rb' = read binary)  */
      $file = fopen($tmpName,'rb');

      $data = fread($file,filesize($tmpName));
      fclose($file); 
        /* a boundary string */
      $randomVal = md5(time());
      $mimeBoundary = "==Multipart_Boundary_x{$randomVal}x";

      /* Header for File Attachment */
      $headers .= "\nMIME-Version: 1.0\n";
      $headers .= "Content-Type: multipart/mixed;\n" ;
      $headers .= " boundary=\"{$mimeBoundary}\"";

      /* Multipart Boundary above message */
      $email_message = "This is a multi-part message in MIME format.\n\n" .
      "--{$mimeBoundary}\n" .
      "Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
      "Content-Transfer-Encoding: 7bit\n\n" .
      $email_message . "\n\n";

      /* Encoding file data */
      $data = chunk_split(base64_encode($data));

      /* Adding attchment-file to message*/
      $email_message .= "--{$mimeBoundary}\n" .
      "Content-Type: {$fileType};\n" .
      " name=\"{$fileName}\"\n" .
      "Content-Transfer-Encoding: base64\n\n" .
      $data . "\n\n" .
      "--{$mimeBoundary}--\n";
}

    // send email to BCMC (and DHEC?)
    mail($BCMC_email, $email_subject, $email_message, $Headers);


?>
任何帮助都将不胜感激

谢谢


没有想法吗?任何人投票支持我的不起作用的职位?任何帮助都将不胜感激。
<?php
// VARS

$BCMC_email="me@myemail.com";

$email_subject="Bird Report - BCMC Mobile App";


$FullName=$_POST["f2_fullName"];
$FromEmail=$_POST["f2_email"]; 
$Phone=$_POST["f2_phone"];
$LocationAddress=$_POST["f2_locationAddress"];
$GPSLocation=$_POST["f2_GPSLocation"]; 
$NumberOfBirds=$_POST["f2_numBirds"];
$AdditionalDetails=$_POST["f2_additionalDetails"]; 

// get photo attachment
$attachment = $field_file = $_POST['f2_photoURI'];
$tmpName = $_FILES['f2_photoURI']['tmp_name'];
$fileType = $_FILES['f2_photoURI']['type'];
$fileName = $_FILES['f2_photoURI']['name']; 


// setup email header
//$Headers = "From:" .$FromEmail;

function clean_string($string) {
  $bad = array("content-type","bcc:","to:","cc:","href");
  return str_replace($bad,"",$string);
}

// email to BCMC
$email_message .= "You have recieved a Bird Report through the BCMC Mobile App\n";
$email_message .= "\n\n";
$email_message .= "Name: ".$FullName."\n";
$email_message .= "Address: ".$LocationAddress."\n";
$email_message .= "GPS Location: ".$GPSLocation."\n";
$email_message .= "E-mail: ".$FromEmail."\n";
$email_message .= "Telphone: ".$Phone."\n\n";
$email_message .= "Number of Birds?  ".$NumberOfBirds."\n\n";
$email_message .= "Additional Details:\n    ".clean_string($AdditionalDetails)."\n\n";
$email_message .= "\n\n";

// create email headers
 $headers = 'From: '.$FromEmail."\r\n".
        'Reply-To: '.$FromEmail."\r\n" .
        'X-Mailer: PHP/' . phpversion();

if (!empty($tmpName)) 
{
      /* Reading file ('rb' = read binary)  */
      $file = fopen($tmpName,'rb');

      $data = fread($file,filesize($tmpName));
      fclose($file); 
        /* a boundary string */
      $randomVal = md5(time());
      $mimeBoundary = "==Multipart_Boundary_x{$randomVal}x";

      /* Header for File Attachment */
      $headers .= "\nMIME-Version: 1.0\n";
      $headers .= "Content-Type: multipart/mixed;\n" ;
      $headers .= " boundary=\"{$mimeBoundary}\"";

      /* Multipart Boundary above message */
      $email_message = "This is a multi-part message in MIME format.\n\n" .
      "--{$mimeBoundary}\n" .
      "Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
      "Content-Transfer-Encoding: 7bit\n\n" .
      $email_message . "\n\n";

      /* Encoding file data */
      $data = chunk_split(base64_encode($data));

      /* Adding attchment-file to message*/
      $email_message .= "--{$mimeBoundary}\n" .
      "Content-Type: {$fileType};\n" .
      " name=\"{$fileName}\"\n" .
      "Content-Transfer-Encoding: base64\n\n" .
      $data . "\n\n" .
      "--{$mimeBoundary}--\n";
}

    // send email to BCMC (and DHEC?)
    mail($BCMC_email, $email_subject, $email_message, $Headers);


?>