php - 使用 $.post() 方法将图像发送到其他页面
问题描述
我有两页第一页有一个表格,它接受姓名、手机号码等信息和来自用户的图像。我想使用 jquery 访问图像并使用 $.post() 方法将其发送到其他页面我想访问图像并将其插入数据库
第一个文件
<script>
$(function(){
$("#add_staff").click(function(){
event.preventDefault();
var regex_mobile=/^\d{10}$/;
var regex_email = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
var insti=$("#inst_id").val();
var name=$("#Staff_name").val();
var pwd=$("#Staff_pwd").val();
var add=$("#staff_address").val();
var dob=$("#Staff_dob").val();
var mail=$("#Staff_mail").val();
var role=$("#Staff_role").val();
var mobile=$("#Staff_mobile").val();
var img = $('#image').prop('files')[0];
if(name=="" || pwd=="" || add=="" || dob=="" || mail=="" || role=="" || mobile=="")
{
alert("All fields are compulsory");
}
else{
if(!regex_mobile.test(mobile)) {
alert("Mobile Number invalid");
}
else if(!regex_email.test(mail)){
alert("Email Invalid");
}
else{
$.post("add_faculty2.php",
{
insti: insti,
name:name,
pwd:pwd,
add:add,
dob:dob,
mail:mail,
role:role,
mobile:mobile,
img:img
},
function(data,status){
$("#msg").text(data);
alert(data);
alert(status);
});
}
});
});
</script>
在上面的文件中,用户接受了所有信息,在 jquery 中,我尝试访问所有信息和图像,然后我尝试使用 $.post() 方法将数据发送到其他页面。
第二个文件
<?php
$insti =$_POST['insti'];
$name =$_POST['name'];
$pwd =$_POST['pwd'];
$add =$_POST['add'];
$dob =$_POST['dob'];
$mail =$_POST['mail'];
$role =$_POST['role'];
$mobile =$_POST['mobile'];
$img =$_POST['img'];
$today = date("Y-m-d H:i:s");
include_once 'conf.php';
$q="insert into tbl_staff_details(inst_id,name,pwd,email,phone,photo,address,dob,role,created_date) values('".$insti."','".$name."','".$pwd."','".$mail."','".$mobile."','".$img."','".$add."','".$dob."','".$role."','".$today."')";
echo $q;
$r=mysqli_query($con,$q);
if($r)
{
echo "Success";
}
else
{
echo "Fail";
}
?> 在上面的文件中,我正在使用第一个文件中的 $.post() 方法发送的 $_POST[] 访问所有信息,然后我试图将所有数据插入数据库中
问题是数据没有插入数据库但是当我省略图像时,所有其他数据都插入数据库
解决方案
好的,首先你需要在你的 javascript 中使用 FormData()
例子
// formdata
var formdata = FormData();
var insti=$("#inst_id").val();
var name=$("#Staff_name").val();
var pwd=$("#Staff_pwd").val();
var add=$("#staff_address").val();
var dob=$("#Staff_dob").val();
var mail=$("#Staff_mail").val();
var role=$("#Staff_role").val();
var mobile=$("#Staff_mobile").val();
var img = $('#image').prop('files')[0];
formdata.append('upload[insti]', insti);
formdata.append('upload[name]', name);
formdata.append('upload[pwd]', pwd);
formdata.append('upload[add]', add);
formdata.append('upload[dob]', dob);
formdata.append('upload[mail]', mail);
formdata.append('upload[role]', role);
formdata.append('upload[mobile]', mobile);
formdata.append('upload[img]', img);
// now send
$.post("add_faculty2.php", formdata,
function(data,status){
$("#msg").text(data);
alert(data);
alert(status);
}
);
在您的 php 脚本中,您可以通过调用来访问图像
$img = $_FILES['upload']['img']['name'];
$img_tmp = $_FILES['upload']['img']['tmp_name'];
其他
$insti = $_POST['upload']['insti'];
$name = $_POST['upload']['name'];
$pwd = $_POST['upload']['pwd'];
$add = $_POST['upload']['add'];
$dob = $_POST['upload']['dob'];
$mail = $_POST['upload']['mail'];
$role = $_POST['upload']['role'];
$mobile = $_POST['upload']['mobile'];
$today = date("Y-m-d H:i:s");
// you can see the image printed here..
var_export($img);
希望这可以帮助。
推荐阅读
- vim - 如何使用 Vim 中的 ./ 相对路径将本地存储的备份目录和交换目录设置为工作目录?
- node.js - 在节点 JS 中解析 Json 数据
- python - AttributeError:“用户”对象没有属性“获取”-带有 PyMongo 的 Flask-Login 用户类
- python - 如何从 Modbus Slave 读取所有保持寄存器?
- postgresql - PostgreSQL UPDATE ON CONFLICT 仅在某些情况下
- c# - 元素的值不会改变
- c# - 如何存储重复 XML 结构的值
- geoserver - Geoserver 无法为 geotiff 创建阅读器
- javascript - Bokeh 从 CustomJS 获取值(更改数据源中的值)
- sql-server - 用于集成服务的 SSIS / Oracle Attunity