【发布时间】:2018-05-30 09:58:41
【问题描述】:
我无法通过 ajax 发送到 php 文件上传和使用 ajax 的数据。 This my code just send file upload。数据不发送到我的 php 代码。我创建表单并使用 ajax 在 php 上发布点击发送功能。 I'm using codeigniter
这是我的表格:
<form action="<?php echo site_url('home/send_chat');?>" method="post" enctype="multipart/form-data">
<input name="message" id="message" type="text" class="form-control input-sm" />
<input type="file" id="file" name="file" />
<br />
<span class="input-group btn">
<button type="submit" class="btn btn-info btn-sm" id="submit">Enkripsi</button>
</span>
</form>
这个 javascript 使用 ajax 在 php 上发送帖子:
$('#submit').on('click', function(){
var message = $('#message').val();
var fd = new FormData(this);
fd.append('file',$('#file')[0].files[0]);
$.ajax({
method:"POST",
url:"<?php echo site_url('home/send_chat');?>",
data: {fd,message:message},
cache: false,
contentType: false,
processData: false,
success: function(data){
alert(data);
},
error: function(xhr, status, error) {
alert(xhr.responseText);
}
});
});
我已经尝试使用 $_POST['message']; 和 $this->input->post("message"); 两者都不起作用
这个 php 来处理代码:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Home extends CI_Controller {
public function send_chat()
{
$name = $_FILES['file']['name'];
$error = $_FILES['file']['error'];
$size = $_FILES['file']['size'];
// $message = $_POST['message'];
$message = $this->input->post("message");
$user = $this->session->userdata('username');
$iduser = $this->session->userdata('userID');
$insert="insert into chat (user,message,id_user,fileupload) VALUES ('$user','$message','$userid','$name')";
$this->db->query($insert);
}
}
在数据库中,我只是发送名称文件upload.user、消息和iduser,而不是发送。
【问题讨论】:
-
尽量避免在隐藏字段中发送数据,使用 Session 来实现
-
@kunal 我的消息无法捕获。此消息不是隐藏字段
-
看到您在隐藏字段中传递用户 ID 和消息,您可以使用身份验证组件或使用会话,您不能直接在隐藏字段中传递用户 ID,任何人都可以更改用户 ID。希望你能理解,这将有助于未来的编码
-
你有没有在你的函数中打印 $_FILES ??
-
@kunal ok 用户 ID。错了.. 看到这条消息是 type text。 $_FILES 它的工作。但消息不起作用
标签: php jquery ajax codeigniter jquery-file-upload