Intereting Posts
Изменение родительской переменной из дочернего класса Нужна помощь, эхо, отмеченные флажками, выбранные пользователем. Создатель запросов Laravel для рекурсивных результатов? Например, id, parent_id JQuery Удаленная проверка не отображается Ошибка Переместить массив в массив в родительский массив php Комбинирование JS и PHP на одной кнопке. Является ли это возможным? Почтовые заголовки извлечение содержимого из pdf с помощью PHP В чем разница между {{}} и {!! !!} в файлах laravel blade? В моем php-скрипте более крупный файл занимает больше времени для загрузки и его привязки max_execution_time Сортировка многомерного массива в PHP? Сделать несколько файлов для принудительной загрузки Как подождать перезагрузки страницы при тестировании интеграции Laravel Требуется регулярное выражение для соответствия специальным ситуациям Mysql не может выполнять более одного запроса за раз

Как отправить значение входных данных файла с помощью ajax на php-страницу

То, что я хочу сделать, – это когда пользователь выбирает изображение и нажимает кнопку, он перемещает изображение в определенную папку и сохраняет ссылку на столбец 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(''); }) 

я надеюсь, что это поможет вам. Не забывайте,