多格式ajax帖子
Multiform ajax post
我使用jQuery处理多主机文件时遇到问题。当我回显结果时,服务器返回
遇到PHP错误。严重程度:通知;消息:未定义的索引:文件[]
我使用的是php框架CodeIgniter。这是一个jQuery代码:
jQuery(document).ready(function($){
$("#new_article").submit(function(event){
event.preventDefault();
var $form = $(this),
url = $(this).attr("action");]
var files = $form.find('input[name="files[]"]').val();
var posting = $.post(url,{
files: files
});
posting.done(function(data){
$("#result").empty().append(data);
});
return false;
});
});
这是一个HTML代码:
<form method="post" enctype="multipart/formdata" action="/upload" id="new_article">
<input class="text-input" id="files" name="files[]" type="file" multiple="" accept="image/*" />
<input type="submit" name="submit" value="Submit" />
</form>
您是如何尝试回显它的?
我测试了你的代码,它满足了你的要求。它发送文件名,但不发送文件。
运行
var_dump($_POST['files'])
它会显示文件的名称
但如果你需要上传文件,这里有一个实际的解决方案:
我建议使用下一个图书馆
1.AjaxFileUpload(http://www.phpletter.com/Our-Projects/AjaxFileUpload/)
2.CodeIgniter多上传https://github.com/stvnthomas/CodeIgniter-Multi-Upload
您的表格:
<form method="post" enctype="multipart/formdata" action="/upload" id="upload_file">
<input class="text-input" id="files" name="files[]" type="file" multiple="" accept="image/*" />
<input type="submit" name="submit" id="submit" />
</form>
你的JS脚本:
<script src="/assets/js/jquery.js"></script>
<script src="/assets/js/ajaxfileupload.js"></script>
<script>
$(function() {
$('#upload_file').submit(function(e) {
e.preventDefault();
$.ajaxFileUpload({
url :'/upload',
secureuri :false,
fileElementId : 'files',
dataType : 'json',
data : {
'somedata' : 'somedata'
},
success : function (data, status)
{
//do something here
}
});
});
});
</script>
您的Codeigniter上传方法:
public function upload()
{
$status = "";
$msg = "";
$file_element_name = 'files';
if ($status != "error")
{
$this->load->library('upload');
$this->upload->initialize(array( // takes an array of initialization options
"upload_path" => "/mnt/httpd/htdocs/codeig/files/", // physical path where the files should be saved
"overwrite" => TRUE,
"encrypt_name" => TRUE,
"remove_spaces" => TRUE,
"allowed_types" => "gif|jpg|png|doc|txt",
"max_size" => 30000,
"xss_clean" => FALSE
));
if (!$this->upload->do_multi_upload($file_element_name))
{
$status = 'error';
$msg = $this->upload->display_errors('', '');
}
else
{
$data = $this->upload->get_multi_upload_data();
if($data)
{
$status = "success";
$msg = "File successfully uploaded";
}
else
{
$status = "error";
$msg = "Something went wrong when saving the file, please try again.";
}
}
@unlink($_FILES[$file_element_name]);
}
echo json_encode(array('status' => $status, 'msg' => $msg));
}
相关文章:
- Javascript/jQuery压缩一个图像正确的评论帖子,并使用Ajax Laravel 5.2保存到控制器中
- ajax帖子返回html
- 已将POST更改为GET.现在Ajax正在返回多个帖子
- 如何使用帖子(ajax)执行IF / ELSE
- 尝试在 jquery ajax 帖子中将变量设置为URL 的一部分
- 将单击事件附加到按钮或链接上的类,该按钮或链接会触发 AJAX 帖子,然后延迟并继续原始操作
- 如何触发带有第一个请求(Windows 身份验证)的授权标头的 AJAX 帖子
- 窗口确认在 AJAX 帖子中打印 HTML 标签
- Ajax WordPress 帖子弹出窗口与 SimpleModal 和 jQuery
- 制作更快的jQuery AJAX帖子
- 而jquery ajax帖子中的循环
- Jquery Ajax.用tampermonkey发送带有输入值的帖子
- ajax和json错误.php帖子错误
- 帖子不会立即使用 ajax 发送
- 使用Ajax和Jquery一次加载100个块的Wordpress帖子
- Ajax 帖子未捕获语法错误:意外令牌非法
- 多格式ajax帖子
- 如何使用ajax从所有帖子中获取第一个图像
- 我想使用 ajax 和 PHP 获取每个帖子数据的点赞总数
- 编辑帖子AJAX,PHP,javascript