1
誰もが、私はエラーコードを取得していますので0 に画像の最大サイズを設定するために私を助けることができる場合は、ファイルの種類を確認しますこのコードを作る。私はまた、ファイルの種類がjpg
またはCodeIgniterでは、0に画像の最大サイズを設定し、JPGまたはPNG
png
であるかどうかを検証したい
function uploadPhoto()
{
$control = 'filephoto';
$path = './upload/';
$image = $_FILES[$control]['name'];
$size = $_FILES[$control]['size'];
if ($imageName = $this->doUpload($control, $path, $image, 'all')) {
} else {
}
}
function doUpload($control, $path, $imageName, $sizes)
{
if ($this->session->userdata('logged_in')) {
$session_data = $this->session->userdata('logged_in');
$u_id = $session_data['u_id'];
$alnum = random_string('alnum', 16);
if (! isset($_FILES[$control]) || ! is_uploaded_file($_FILES[$control]['tmp_name'])) {
$this->session->set_flashdata('error_nofile', 'No file was chosen Error code: ' . $_FILES[$control]['error']);
header('location:' . base_url() . "indexc/upload/");
return false;
}
if ($_FILES[$control]['size'] > 2048000) {
$this->session->set_flashdata('error_largefile', 'File is too large (' . round(($_FILES[$control]["size"]/1000)) . 'kb), please choose a file under 2,048kb');
header('location:' . base_url() . "indexc/upload/");
return false;
}
if ($_FILES[$control]['error'] !== UPLOAD_ERR_OK) {
$this->session->set_flashdata('error_failed', 'Upload failed. Error code: ' . $_FILES[$control]['error']);
header('location:' . base_url() . "indexc/upload/");
Return false;
}
switch (strtolower($_FILES[$control]['type'])) {
case 'image/jpeg':
$image = imagecreatefromjpeg($_FILES[$control]['tmp_name']);
move_uploaded_file($_FILES[$control]["tmp_name"], $path . $imageName);
break;
case 'image/png':
$image = imagecreatefrompng($_FILES[$control]['tmp_name']);
move_uploaded_file($_FILES[$control]["tmp_name"], $path . $imageName);
break;
case 'image/gif':
$image = imagecreatefromgif($_FILES[$control]['tmp_name']);
move_uploaded_file($_FILES[$control]["tmp_name"], $path . $imageName);
break;
default:
$this->session->set_flashdata('error_notallowed', 'This file type is not allowed');
header('location:' . base_url() . "indexc/upload/");
return false;
}
@unlink($_FILES[$control]['tmp_name']);
$old_width = imagesx($image);
$old_height = imagesy($image);
//Create tn version
if ($sizes == 'tn' || $sizes == 'all') {
$max_width = 600;
$max_height = 600;
$scale = min($max_width/$old_width, $max_height/$old_height);
if ($old_width > 600 || $old_height > 600) {
$new_width = ceil($scale * $old_width);
$new_height = ceil($scale * $old_height);
} else {
$new_width = $old_width;
$new_height = $old_height;
}
$new = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($new, $image, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height);
switch (strtolower($_FILES[$control]['type'])) {
case 'image/jpeg':
imagejpeg($new, $path . '' . $u_id . '_' . $alnum . '_' . $imageName, 90);
break;
case 'image/png':
imagealphablending($new, false);
imagecopyresampled($new, $image, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height);
imagesavealpha($new, true);
imagepng($new, $path . '' . $u_id . '_' . $alnum . '_' . $imageName, 0);
break;
case 'image/gif':
imagegif($new, $path . '' . $u_id . '_' . $alnum . '_' . $imageName);
break;
default:
}
}
imagedestroy($image);
imagedestroy($new);
/* print '<div style="font-family:arial;"><b>'.$imageName.'</b> Uploaded successfully. Size: '.round($_FILES[$control]['size']/1000).'kb</div>'; */
$this->session->set_flashdata('success_upload', '<div style="font-family:arial;"><b>' . $imageName . '</b> Uploaded successfully. Size: ' . round($_FILES[$control]['size']/1000) . 'kb</div>');
$postdata['p_u_id'] = $u_id;
$postdata['p_content'] = $this->input->post('content');
$postdata['p_image'] = $u_id . '_' . $alnum . '_' . $imageName;
$postdata['p_image_original'] = $imageName;
$postdata['p_posted'] = date("Y-m-d H:i:s");
$res = $this->indexm->postinsert_to_db($postdata);
header('location:' . base_url() . "indexc/upload/");
} else {
$this->load->view('index');
}
}
してください:私は、単にコードのこの問題に対する解決策があるかどうかを知りたいphp.ini
に制限を変更する必要はありません助けて!
おかげで、
ジョー
が、私は画像の幅と高さのサイズを変更したいです。 – Joehamir
参照リンク: http://stackoverflow.com/questions/19218247/codeigniter-image-resize –