我想要做的是每当用户选择图片并单击按钮时,它将把图像移动到特定的文件夹,并将链接保存到数据库的user_image列。
我的问题是,单击“提交”按钮后,图片的实际名称未保存在数据库列中。示例Oppa/upload/多数民众赞成在数据库中保存的值没有图片文件名。
Oppa/upload/
我认为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,然后尝试。
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图片上传。
谢谢。