【发布时间】:2016-02-03 06:10:50
【问题描述】:
我正在尝试使用 jQuery ajax 发送带有文件的数据。但它不起作用:
<script>
function uploadImage() {
var form = document.getElementById("table").value + "-form";
alert(form);
var formData = new FormData($("#" + form));
$.ajax({
url: 'update.php',
type: 'POST',
data: formData,
enctype: 'multipart/form-data',
cache: false,
contentType: false,
processData: false,
dataType: "json"
});
}
</script>
我已经编辑了添加 enctype 和 dataType 的代码,但仍然没有将任何文件添加到根据输入动态创建的指定文件夹中。
这是我的 php 代码:
$mode=$_POST['mode'];
$table=$_POST['table'];
$fetch=$_POST['fetch'];
$id=$_POST[$fetch];
$name=$_POST['name'];
$gender=$_POST['gender'];
$pimg=$_FILES['pimg']['name'];
$size=$_FILES['pimg']['size'];
$temp=$_FILES['pimg']['tmp_name'];
$city=$_POST['city'];
$file=strtotime("now").$pimg;
$locn="files/".$id."/".$table;
if (!file_exists($locn)) { mkdir($locn, 0777, true); }
$path=$locn."/";
$upload=move_uploaded_file($temp,$path.$file);
$con=mysql_connect("localhost","root","");
$db=mysql_select_db("test",$con);
$sql="INSERT INTO `".$table."` (name,gender,pimg,city) VALUES ('$name','$gender','$file','$city');";
$query=mysql_query($sql,$con);
通过提交按钮提交数据时,PHP代码正在工作。
【问题讨论】:
-
为什么不起作用?您遇到了什么错误(如果有)?
-
您是否使用 enctype="multipart/form-data" 加密了您的表单?试试这个 var formData = new FormData($("#" + form)[0]);
-
我已经编辑了添加 enctype 和 dataType 的代码,但仍然没有将任何文件添加到根据输入动态创建的指定文件夹中。我已经用修改的代码编辑了我的问题,并添加了 PHP 代码以供参考。