我試圖上傳圖像與jQuery和Ajax功能,以及如何獲取圖像文件的所有細節,比如在PHP中,我們使用$_FILE()
如何在codeigniter中使用ajax上傳圖片?
這裏是我的代碼
JS
$("#uploadimg").click(function() {
$("#file").click();
});
$("#file").change(function(e) {
var file=$('#file').val();
alert(file);
die();
e.preventDefault();
$.ajax({
url:'http://localhost/JSG/blog/uploadimg',
secureuri:false,
type: "POST",
fileElementId:'image',
dataType: 'text',
data:{ file: file },
cache: true,
success: function (data){
alert(data);
console.log(data);
},
});
});
控制器
public function uploadimg()
{
$var = $_POST['file'];
print_r($var);
if($this->input->post('file')) {
$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($this->data['error']);
} else {
print_r("success");
}
}
}
查看
<form role="form">
<div class="form-group">
<label for="recipient-name" class="control-label">Blog Title:</label>
<input type="text" class="form-control" id="recipient-name">
</div>
<div class="form-group">
<label for="message-text" class="control-label">Message:</label>
<textarea class="form-control" id="message-text"></textarea>
</div>
<div class="form-group">
<label for="message-text" class="control-label">Upload image:</label>
<img src="<?php echo base_url();?>assest/img/blank.png" alt="Blank image" id="uploadimg" class="img-thumbnail">
<input style="display:none" id="file" value=" " type="file" class="file" data-show-preview="false">
</div>
</form>
響應
C:\fakepath\Koala.jpg You did not select a file to upload.
請幫
當我在我的控制器中使用$ _FILES他扔[Object FileData] 有一些問題..請幫助 – Secure 2014-12-04 12:08:40
我沒有得到實際值如何使用完整的文件路徑。 – Secure 2014-12-04 12:59:35
您必須檢查 - $ _FILES ['name']其中'name'是輸入類型=文件的名稱。您還必須爲所有輸入提供名稱屬性。使用var_dump()來查看信息。 – John 2014-12-04 13:44:14