我想在 jQuery 更改事件时在服务器上上传图像,但是使用 codeigniter csrf 我只能上传一次图像。如何使用ajax为多个请求上传图片。设置时请记住
config['csrf_protection'] = FALSE;
然后我可以发送多个请求 jQuery onchange 事件但是当 csrf_protection 为假时我认为 csrf 没有优势。所以问题是如何在启用 csrf_protection 的情况下使用 ajax 发送多个请求。我的 jquery 代码如下
$("#avatar").change(function(){
var link = $("#avatar").val();
$.ajax({
url : "<?php echo base_url('main/test'); ?>",
type: 'post',
data: {'<?php echo $this->security->get_csrf_token_name(); ?>':'<?php echo $this->security->get_csrf_hash(); ?>',"id":"hello","link":link},
success : function(data)
{
alert(data);
}
});
});
我的控制器:
public function test()
{
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = 500;
$config['max_width'] = 260;
$config['max_height'] = 260;
$this->load->library('upload', $config);
if (!$this->upload->do_upload('link')) {
echo "error";
} else {
$data = array('upload_data' => $this->upload->data());
$image_name = $data['upload_data']['file_name'];
echo $image_name;
}
}
原文由 romio 发布,翻译遵循 CC BY-SA 4.0 许可协议
在我看来,您应该尝试在每次请求时重新创建您的 csrf 令牌
试试这个代码示例…
对于js函数
和控制器
让我知道,祝你好运
注意: 当有人要求您向问题发布更多数据时,不要将其作为评论或答案发布,最好编辑问题本身并添加内容