一直试图使用jquery的提交功能将上传的文档与其他文本字段一起发布到php脚本,但到目前为止还没有成功。文本字段已成功发布。我不知道问题是什么。提供协助。
Jquery提交代码
submitHandler: function(form) {
$.post('bin/insert.php', $("#form").serialize(),
function(data) {
if(data.length > 0 )
{
$('.success_box').fadeIn(800);
$('.success_box').html(data);
}
});
}
php脚本
if(isset($_POST['save']))
{
$upload_dir = "./docs";
$upload_path = $upload_dir."/";
$userfile_name = $_FILES['image']['name'];
$userfile_tmp = $_FILES['image']['tmp_name'];
$userfile_size = $_FILES['image']['size'];
$filename = basename($_FILES['image']['name']);
$file_ext = substr($filename, strrpos($filename, '.') + 1);
$large_image_name = $filename;
if($userfile_name==NULL){
echo "<img src='./warning.png' align='center'>You have not selected a document to upload";
exit();
}
}
我在发布表单时收到以上错误消息。
答案 0 :(得分:1)
AJAX不能用于将文件上传到服务器。
有一些插件可能会有所帮助,包括:
http://www.webtoolkit.info/ajax-file-upload.html
注意到在评论中提供的SO链接上发布此链接和其他人 - 该页面为您提供了良好的信息来源。
答案 1 :(得分:0)
是的,您可以上传起诉ajax脚本的文件。使用以下代码
$(document).ready(function(){
$('form#id').submit(function(event){
var formData = new FormData($(this)[0]);
$.ajax({
type : "POST",
url : "bin/insert.php",
data : formData,
async :false,
dataType : 'json',
success: function(data,status) {
alert('saved');
},
cache: false,
contentType: false,
processData: false
});
event.preventDefault();
});
});
在php页面试试 的print_r($ _ POST); 的print_r($ _ FILES);
处理这些并放入db并将文件移动到您的文件位置。