То, что я хочу сделать, – это когда пользователь выбирает изображение и нажимает кнопку, он перемещает изображение в определенную папку и сохраняет ссылку на столбец user_image базы данных.
Моя проблема заключается в том, что фактическое имя изображения не сохраняется в столбце базы данных после нажатия кнопки «Отправить». пример Oppa/upload/
thats значение, сохраненное в базе данных, без имени файла изображения.
Я думаю, что значение файла не получило photo.php, кто-нибудь может помочь мне решить его.
<input type='file' id="imageInput" name="imageInput" accept="image/*" /> <button id="changePicture" name="changePicture">Submit</button>
сценарий:
var data = {}; data.imageInput = $('#imageInput').val(); data.email = $('#email').val(); $.ajax({ type: "POST", url: "Oppa/view/photo.php", data: data, cache: false, success: function (response) { if (Number(response) == 1) { $("#dialog-confirm-changedImage").dialog("open"); } } }); return false;
photo.php
<?php include_once('../dbc/database.php'); $db = new Connection(); $db = $db->dbConnect(); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $email = isset($_POST['email']) ? $_POST['email'] : ""; $image = addslashes(file_get_contents($_FILES['imageInput']['tmp_name'])); $image_name = addslashes($_FILES['imageInput']['name']); $image_size = getimagesize($_FILES['imageInput']['tmp_name']); move_uploaded_file($_FILES["imageInput"]["tmp_name"], "Oppa/upload/" . $_FILES["imageInput"]["name"]); $location = "Oppa/upload/" . $_FILES["imageInput"]["name"]; if(!empty($_POST['email'])) { $q = "UPDATE tbl_user SET user_image = '$location' WHERE user_email= :email "; $query = $db->prepare($q); $query->bindParam(':email', $email); $results = $query->execute(); echo "1"; } ?>
Взгляните на этот http://malsup.com/jquery/form/#ajaxSubmit .
Включите этот плагин jquery.form.js
а затем попробуйте это.
$('#FormID').ajaxSubmit({ //FormID - id of the form. type: "POST", url: "Oppa/view/photo.php", data: $('#FormID').serialize(), cache: false, success: function (response) { if (Number(response) == 1) { $("#dialog-confirm-changedImage").dialog("open"); } } });
Это должно сработать. Я использую его для загрузки изображения ajax.
Благодарю.
<input type='file' id="imageInput" name="imageInput" accept="image/*" /> <button id="changePicture" name="changePicture">Submit</button> <script src="//code.jquery.com/jquery-1.11.0.min.js"></script> <script type="text/javascript"> $("#changePicture").click(function(){ var file_name=$("#imageInput").val(); var fileName = $("#imageInput").val(); var fileExtension = fileName.substring(fileName.lastIndexOf('.') + 1); var base_url = 'Oppa/view/photo.php'; var file_data=$("#imageInput").prop("files")[0]; var form_data=new FormData(); form_data.append("file",file_data); $.ajax({ type:"POST", url: base_url, datatype:'script', cache:false, contentType:false, processData:false, data:form_data, success:function(){ //------------ }, error:function(){ //---------- } }); $("#imageInput").val(''); }) </script> <?php include_once('../dbc/database.php'); $db = new Connection(); $db = $db->dbConnect(); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $email = isset($_POST['email']) ? $_POST['email'] : ""; $image = addslashes(file_get_contents($_FILES['file']['tmp_name'])); $image_name = addslashes($_FILES['file']['name']); $image_size = getimagesize($_FILES['file']['tmp_name']); move_uploaded_file($_FILES["file"]["tmp_name"], "Oppa/upload/" . $_FILES["file"]["name"]); $location = "Oppa/upload/" . $_FILES["file"]["name"]; if(!empty($_POST['email'])) { $q = "UPDATE tbl_user SET user_image = '$location' WHERE user_email= :email "; $query = $db->prepare($q); $query->bindParam(':email', $email); $results = $query->execute(); echo "1"; } ?>
не забывайте, как мои ans 🙂
попробуй это,
var data= false; if (window.FormData) { data= new FormData(); } var email = $('#email').val(); if (formdata) { data.append("image", $('input[type=file]')[0].files[0]); data.append("email","+email+"); data.append("fileName",$('input[type=file]')[0].files[0].name); } if (data) { jQuery.ajax({ url: "php/upload.php", type: "POST", data: data,//Now you attached form datas with filename also, processData: false, contentType: false, success: function (data) { alert("Response Data : "+data); } }); }
JQuery ( "# changePicture"). нажмите (функция () {
var file_name=jQuery("#imageInput").val(); var fileName = jQuery("#imageInput").val(); var fileExtension = fileName.substring(fileName.lastIndexOf('.') + 1); var base_url = 'Oppa/view/photo.php'; var file_data=jQuery("#imageInput").prop("files")[0]; var form_data=new FormData(); form_data.append("file",file_data); jQuery.ajax({ type:"POST", url: base_url, datatype:'script', cache:false, contentType:false, processData:false, data:form_data, success:function(){ //------------ }, error:function(){ //---------- } }); jQuery("#imageInput").val(''); })
я надеюсь, что это поможет вам. Не забывайте,