[英]Image is not uploading in php codeigniter and getting no response
我正在使用jquery在codeigniter中創建文件上傳系統。 但是我在這方面遇到了一些問題。 我正在獲取文件名。 但是我不知道為什么它沒有在服務器上上傳文件。 它沒有在控制台中給我任何響應。請告訴我是否缺少任何內容。
我的Jquery代碼在按鈕上單擊
var post_data = $('#post').val();
if (!$('#post').val()) {
// console.log('hit');
// alert($('input[type=file]').val());
if (typeof FormData !== 'undefined') {
// send the formData
var formData = new FormData( $("#formname")[0] );
$.ajax({
url : 'Profile/uploadimg', // Controller URL
type : 'POST',
data : formData,
async : false,
cache : false,
contentType : false,
processData : false,
success : function(data) {
console.log(data);
}
});
} else {
message("Your Browser Don't support FormData API! Use IE 10 or Above!");
}
這是我的控制器代碼
public function uploadimg()
{
$var = $_FILES ['fileUp'];
//print_r($var);
if($this->input->post('fileupload')) {
$config['upload_path'] = 'upload';
$config['file_name'] = $var;
$config['overwrite'] = 'TRUE';
$config["allowed_types"] = 'jpg|jpeg|png|gif';
$config["max_size"] = '1024';
$config["max_width"] = '400';
$config["max_height"] = '400';
$this->load->library('upload', $config);
if(!$this->upload->do_upload()) {
$this->data['error'] = $this->upload->display_errors();
print_r( 'error');
} else {
print_r("success");
}
}
我的html表格
<form enctype="multipart/form-data" name="formname" id="formname" method="post" action="">
<div class="post-menu col-lg-7 col-sm-7 col-xs-12">
<ul>
<li><a href="javascript:void(0)"><img src="<?php echo base_url(); ?>img/camera1.png" alt="Uplod photo" id="imgupload" ></a>
<input type="file" id="fileupload" name="fileUp" class="hidden" accept="image/*">
</li>
<li><a href=""><img src="<?php echo base_url(); ?>img/add-peopel.png" alt="Add Friend" ></a></li>
<li><a href=""><img src="<?php echo base_url(); ?>img/add-location.png" alt="Location" ></a></li>
</ul>
</div>
<div class="post-right col-lg-5 col-sm-5 col-xs-12">
<ul>
<li><a href="" class="slt"><img src="<?php echo base_url(); ?>img/frends.png" alt="friends"> Friends <img src="<?php echo base_url(); ?>img/arrow.png" alt="Droop Down"> </a></li>
<li><input type="button" class="bt1" value="Post" id="post_button"></li>
</ul>
</div>
</form>
請嘗試讓我知道。 您的ajax請求
$(document).on("submit",'#formname',function(event){
var form = $('#formname').get(0);
var formData = new FormData(form);
$.ajax({
type: "POST",
url: "<?php echo site_url("Profile/uploadimg"); ?>",
data: formData,
dataType: 'jSon',
xhr: function() {
var myXhr = $.ajaxSettings.xhr();
return myXhr;
},
cache:false,
contentType: false,
processData: false,
success: function(result){
console.log(result);
}
});
event.preventDefault();
});
和控制器代碼:-
public function uploadimg()
{
$var = $_FILES ['fileUp'];
$config['upload_path'] = 'upload';
$config['overwrite'] = 'TRUE';
$config["allowed_types"] = 'jpg|jpeg|png|gif';
$config["max_size"] = '1024';
$config["max_width"] = '400';
$config["max_height"] = '400';
$this->load->library('upload', $config);
if(!$this->upload->do_upload('fileUp'))
{
$this->data['error'] = $this->upload->display_errors();
echo json_encode(array("result"=>$this->data['error']));
exit;
}
else
{
echo json_encode(array("result"=>"Success"));
exit;
}
}
將mimeType:"multipart/form-data"
到您的ajax調用中,例如:
$.ajax({
url : 'Profile/uploadimg', // Controller URL
type : 'POST',
data : formData,
mimeType:"multipart/form-data",
async : false,
cache : false,
contentType : false,
processData : false,
success : function(data) {
console.log(data);
}
});
還要確保您的表單標記具有屬性enctype="multipart/form-data"
。
注釋以下行: $config['file_name'] = $var;
。 您可以按以下方式獲取上載的文件數據(添加到print_r("success");
之上):
$uploadFileData = $this->upload->data();
$uploadFileName = (isset($uploadFileData['file_name']) && trim($uploadFileData['file_name']))? $uploadFileData['file_name'] : '';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.