所以我一直在努力尝试将我的网站转换为使用PHP和HTML来上传带有和不带图像的statusupdates以使用PHP,AJAX和HTML,因此它不需要为了成功更新数据库等等,直到'我必须上传图像。
我的JavaScript / jQuery / AJAX代码如下所示:
$(function() {
$("#statusupdate").on('submit', function (e) {
var category = $("#statusupdate input[type=radio]:checked").val();
var text = $("textarea#statusupdate_text").val();
var file = $("input#file").val();
$.ajax({
type: "POST",
url: "snippets/post_statusupdatequery.php",
data: { category : category, text : text, file : file },
success: function() {
$('#statusupdate').html("<div id='success_status'></div>");
$('#success_status').html("<h2>Post Submitted!</h2>")
.append("<p>We will be in touch soon.</p>")
.hide();
}
});
return false;
e.preventDefault();
});
});
http://pastebin.com/fSGFa32D 我的PHP代码如下所示:
if (!empty($_FILES['userfile'])) {
$raw_text = $_POST['text'];
$text = mysql_real_escape_string($raw_text);
$uploaddir = '/var/www/images/imageupdate/';
$filename = "".$id."-".$time."";
$uploadfilenam = basename($filename);
$uploadfilename = $uploadfilenam.".png";
$uploadfile = $uploaddir.$uploadfilename;
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
mysql_query("INSERT INTO imagepost
(userid, text, image, date)
VALUES('$id', '$text', '$uploadfilename', '$time') ") or die(mysql_error());
}
} else {
echo '<script>alert(" Select a file to upload! ");</script>';
}
目前据我所知,它在PHP代码中的第一个if语句失败,并且我已经在遍历stackoverflow上搜索和搜索但是我找不到与此类似的问题。
请帮助,我错过了什么让文件“通过AJAX发送”到PHP?
答案 0 :(得分:0)
您无法使用此javascript语法上传文件
var file = $("input#file").val();
使用jquery ajax form提交包含文件元素的表单。还要确保表单有enctype=multipart/form-data
要首先设置ajax表单,请设置html表单
<form id="myform" ...>.........</form>
然后,只需执行
即可将jquery
代码附加到表单提交事件
$('#myform').ajaxForm(); //you can pass the same options as you would pass to $.ajax();