ajax通信についての質問をさせていただきます。
変数データのみの送信はできるのですが、画像の送信も一緒にするとなった時にどうしても送信ができないです。
今のところ、ajax通信の中のalert文が表示されないです。
以下が実行したいプログラムです。
javascript
1var pictureSource; // 写真ソース 2var destinationType; // 戻り値のフォーマット 3 4document.addEventListener("deviceready",onDeviceReady,false); 5function onDeviceReady() { 6 pictureSource=navigator.camera.PictureSourceType; 7 destinationType=navigator.camera.DestinationType; 8} 9 10// 撮影 11function capturePhoto() { 12 // 撮影した写真をBase64形式の文字列として取得 13 navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50 }); 14} 15 16// 17function onPhotoDataSuccess(imageData) { 18 var byteString = atob(imageData); 19 var ia = new Uint8Array(byteString.length); 20 for (var i = 0, l = byteString.length; i < l; i++) { 21 ia[i] = byteString.charCodeAt(i); 22 } 23 var picBlob = new Blob([ia], 'image/jpeg'); // MIMETYPEは画像に合わせる 24} 25 26// 送信ボタンを押した後の処理 27function onButtonClick() { 28 29 var formData = new FormData(); 30 formData.append('test1', id); 31 formData.append('test2', title); 32 formData.append('test3', latitude); 33 formData.append('test4', longitude); 34 formData.append('pic', picBlob); //ここを除けば正常に動きます。 35 36 //データベースへ送信 37 $.ajax({ 38 url: "soshin.php", 39 type:"POST", 40 data: formData, 41 success: function(data){ 42 alert(data); 43 }, 44 error: function(XMLHttpRequest, textStatus, errorThrown){ 45 alert("ng"); 46 } 47 }); 48}
php
1<?php 2 3//エラー表示 4ini_set( 'display_errors', 1 ); 5 6//DB接続PHP呼び出し 7include 'MySQL.php'; 8 9//取得した画像の名前を現在のUnixタイムスタンプに置き換えるための準備 10$time = time(); 11$timerename = $time.$_POST['test2']; 12$timename = $timerename.'.jpg'; 13 14//写真の保存 15if (is_uploaded_file($_FILES['pic']['tmp_name'])) { 16 17 $tmp_path = $_FILES['pic']['tmp_name']; 18 $target_path = '/image/'.$timename; //画像保存ディレクトリ 19 20 21 //一時保存画像を保存ディレクトリに移動 22 if(move_uploaded_file($tmp_path,$target_path)){ 23 24 //保存成功 25 echo $_FILES["pic"]["name"] . "をアップロードしました。"; 26 27 } else { 28 29 //ファイルを持ってこれたが、アップロードできなかった場合 30 echo "ファイルをアップロードできません。"; 31 32 } else { 33 echo "ファイルが選択されていません。"; 34 } 35} 36 37$data1 = $_POST['test1']; 38$data2 = $_POST['test2']; 39$data3 = $_POST['test3']; 40$data4 = $_POST['test4']; 41 42//INSERT文 43$sql = $db->prepare("insert into test_1(title, latitude, longitude) 44 values(:title, :latitude, :longitude)"); 45$sql->bindParam(':title',$data2, PDO::PARAM_STR); 46$sql->bindParam(':latitude',$data3, PDO::PARAM_STR); 47$sql->bindParam(':longitude',$data4, PDO::PARAM_STR); 48$sql->execute(); 49 50$sql = 'select * from test_1;'; 51 $stmt = $db->query($sql); 52 if(!stmt){ 53 $err = $db->errorInfo(); 54 die('SELECT 失敗:' . $err[2]); 55 } 56 while($data=$stmt->fetch(PDO::FETCH_ASSOC)){ 57 print_r($data); 58 } 59 60//PDO接続終了 61unset($db); 62 63?> 64
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/21 13:33
2016/12/21 13:34
2016/12/21 14:05
2016/12/21 14:10
2016/12/21 14:29
2016/12/21 14:38 編集
2016/12/21 14:50
2016/12/21 14:57
2016/12/22 07:09
2016/12/22 08:50
2016/12/22 09:54
2016/12/22 09:59 編集
2016/12/22 10:34
2016/12/27 09:25
2016/12/28 00:17