Php 如何使用文本数据通过jQuery或AJAX上传文件,并将文件名保存到SQL数据库中?
我正在编写一个小PHP脚本,将一些数据添加到MySQL数据库中。我使用jQuery将我的文本数据发送到正在处理的PHP文件中,该文件将把数据放入MySQL数据库中,该部分是可以解决任何问题的 但在这种形式下,我需要将一个文件上传到服务器中的一个文件夹中,并将该路径或文件名保存到数据库列Img中 我在Stack网站上搜索过,但没有找到任何线索。如果jQuery不能做到这一点,请告诉我如何在不丢失文本提交部分的情况下归档。我将在这里列出我的代码 我的PHP进程:Php 如何使用文本数据通过jQuery或AJAX上传文件,并将文件名保存到SQL数据库中?,php,jquery,ajax,Php,Jquery,Ajax,我正在编写一个小PHP脚本,将一些数据添加到MySQL数据库中。我使用jQuery将我的文本数据发送到正在处理的PHP文件中,该文件将把数据放入MySQL数据库中,该部分是可以解决任何问题的 但在这种形式下,我需要将一个文件上传到服务器中的一个文件夹中,并将该路径或文件名保存到数据库列Img中 我在Stack网站上搜索过,但没有找到任何线索。如果jQuery不能做到这一点,请告诉我如何在不丢失文本提交部分的情况下归档。我将在这里列出我的代码 我的PHP进程: include ('connect.
include ('connect.php');
$data = ("SELECT * FROM poiinfo");
$poiName = $_REQUEST['Name'];
$poiDes = $_REQUEST['Descrip'];
$poiCon = $_REQUEST['ConInfo'];
/*$poiImg = $_REQUEST['Image']; */ <-- my Image data but this is not the way need correct this
$dbData = "INSERT INTO poiinfo(`Name`, `Des.`, `Contact`) VALUES ('$poiName','$poiDes','$poiCon')";
$putData = mysql_query($dbData);
if ($putData){
echo "Data inserted";
}else {
echo "Not Done";
}
我的表格:
<?php
/**
* @author SiNUX
* @copyright 2013
*/
include ('connect.php');
$lastId = mysql_query("SELECT ID FROM poiinfo ORDER BY ID DESC LIMIT 1");
if ($row = mysql_fetch_array($lastId)){
$nId = $row['ID'];
$nId == "0";
$nId = $nId++;
mysql_quary("INSERT INTO poiinfo ('ID') VALUES ('$nId')");
}else {
$lId = $row['ID'];
$lId = $lId + 0;
$lId++;
$tId = $lId;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#save_data").click(function(){
var name = document.getElementById("Name").value;
var desc = document.getElementById("Descrip").value;
var con = document.getElementById("ConInfo").value;
var dataString = 'Name='+name+'&Descrip='+desc+'&ConInfo='+con;
$.ajax({
type:'POST',
data:dataString,
url:'AddPoiPro.php',
success:function(data){
if(data="Data inserted") {
//alert("Data Success");
document.getElementById('msg').innerHTML= "<div style=\"background-color:#0F0; text-align:center; color: #060\">Data Saved</dive>";
$('#msg').delay(1500).fadeOut();
} else {
//alert("Not Inserted");
document.getElementById('msg').innerHTML= "<div style=\"background-color:#0F0; text-align:center; color: red\">Data Not Saved</div>";
}
}
});
});
});
</script>
<title>AddPOI</title>
</head>
<body>
<form method="post" enctype="multipart/form-data" name="form1" id="form1">
<p>
<label for="poiid">ID :</label>
<input type="text" name="poiid" id="poiid" readonly="readonly" style="width:70px;" value="<?php echo $tId; ?>" />
</p>
<p>
<label for="Name">POI Name :</label>
<input type="text" name="Name" id="Name" />
</p>
<p>
<label for="Descrip" style="alignment-adjust:middle">POI Description :</label>
<textarea name="Descrip" id="Descrip" cols="45" rows="5"></textarea>
</p>
<p>
<label for="ConInfo">Contact Infomation :</label>
<textarea name="ConInfo" id="ConInfo" cols="45" rows="5"></textarea>
</p>
<p>
<label for="Img">POI Image :</label>
<!--<input type="file" name="Image" id="Image" /> --> <-- File upload place but for now it's commented out.
</p>
<p><div id="msg"></div></p>
<p>
<div align="center">
<input type="button" name="Submit" id="save_data" value="Submit" style="width:100px;" />
<input type="reset" name="reset" id="reset" value="Rest Data" style="width:100px;" />
</div>
</p>
</form>
</body>
</html>
请帮助我,正如我在大多数帖子中所说的,我看到AJAX或jQuery无法处理文件上传,所以如果有办法,请告诉我
另外,你们是编码大师,我只是一个蚱蜢,所以这是一个好的编码还是我需要改进我的风格,在上面的表单中,我在标题中有ajax部分,我应该将它移动到另一个文件并链接到表单。不幸的是,出于安全原因,你不能通过ajax上传文件。你能想象如果JavaScript可以访问你的文件系统会发生什么吗 解决这个问题的方法是使用一个表单,将target属性设置为不可见的iframe。这将在不刷新页面的情况下实现文件上载
您可能会发现这很有用。恐怕您无法通过AJAX发送文件,但是您有几个选项可以实现类似的效果。或者,使用iframe我知道这听起来很老套但很有效,或者你可以使用很多HTML5插件。你可以使用uploadify来实现这一点。试试这个@BenCarey thx以获得快速回复。你可以详细说明如何使用iFrame方法吗?它可能很旧,但可以使用,先生。@SadaruwanSamraweera只需将文件字段以自己的形式放入iFrame中,并在更改文件字段时提交表单。如果成功,则将上载文件的名称放入父文件中的隐藏字段中page@BenCareythx兄弟有助于了解旧的东西以及新的一次。是的,我可以再次IE。