hamidhassas
سه شنبه 17 تیر 1393, 23:58 عصر
من از کد زیر استفاده میکنم برای آپلود عکس و تغییر سایز عکس مشکلم اینه که میخوام آدرس فایل آپلود شده که با دو سایز مختلف هست رو در یک رکورد در دیتابیس زخیره کنم
اتفاقی که الان رخ میده اینه که نمیتونم آدرس ها فایل ها رو که بعد از آپلود روی سرور انجام میشه رو در یک رکورد زخیره کنم بلکه به صورت دو تا رکورد زخیره میشه
// settings
$max_file_size = 1920*1024; // 200kb
$valid_exts = array('jpeg', 'jpg', 'png', 'gif');
// thumbnail sizes
//$sizes = array(100 => 100, 150 => 150, 250 => 250);
$sizes = array(48 => 48, 150 => 150,);
if ($_SERVER['REQUEST_METHOD'] == 'POST' AND isset($_FILES['image'])) {
if( $_FILES['image']['size'] < $max_file_size ){
// get file extension
$ext = strtolower(pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION));
if (in_array($ext, $valid_exts)) {
/* resize image */
foreach ($sizes as $w => $h) {
$files[] = resize($w, $h);
}
} else {
$msg = 'Unsupported file';
}
} else{
$msg = 'Please upload image smaller than 1024KB';
}
}
date_default_timezone_set('Asia/Tehran');
function resize($width, $height){
/* Get original image x y*/
list($w, $h) = getimagesize($_FILES['image']['tmp_name']);
/* calculate new image size with ratio */
$ratio = max($width/$w, $height/$h);
$h = ceil($height / $ratio);
$x = ($w - $width / $ratio) / 2;
$w = ceil($width / $ratio);
/* new file name */
//$path = 'uploads/'.$width.'x'.$height.'_'.$_FILES['image']['name'].'_'.date('Y.n.j-G.i');
$path = '../../../../images/uploads/'.date('Y.n.j-G.i').'_'.$width.'x'.$height.'_'.$_FILES['image']['name'];
/* read binary data from image file */
$imgString = file_get_contents($_FILES['image']['tmp_name']);
/* create image from string */
$image = imagecreatefromstring($imgString);
$tmp = imagecreatetruecolor($width, $height);
imagecopyresampled($tmp, $image,
0, 0,
$x, 0,
$width, $height,
$w, $h);
/* Save image */
switch ($_FILES['image']['type']) {
case 'image/jpeg':
imagejpeg($tmp, $path, 100);
break;
case 'image/png':
imagepng($tmp, $path, 0);
break;
case 'image/gif':
imagegif($tmp, $path);
break;
default:
exit;
break;
}
return $path;
/* cleanup memory */
imagedestroy($image);
imagedestroy($tmp);
}
if(isset($files)){
foreach ($files as $image) {
//echo "<img class='img' src='{$image}' /><br /><br />";
$name_farsi=mysql_escape_string($_POST['name_farsi']);
$insert=mysql_query("INSERT INTO `download` (`file_name_persian` ,`image_min`, `image_max` ) VALUES ( '".$name_farsi."', '".$image."', '".$image."')");
}
}
اتفاقی که الان رخ میده اینه که نمیتونم آدرس ها فایل ها رو که بعد از آپلود روی سرور انجام میشه رو در یک رکورد زخیره کنم بلکه به صورت دو تا رکورد زخیره میشه
// settings
$max_file_size = 1920*1024; // 200kb
$valid_exts = array('jpeg', 'jpg', 'png', 'gif');
// thumbnail sizes
//$sizes = array(100 => 100, 150 => 150, 250 => 250);
$sizes = array(48 => 48, 150 => 150,);
if ($_SERVER['REQUEST_METHOD'] == 'POST' AND isset($_FILES['image'])) {
if( $_FILES['image']['size'] < $max_file_size ){
// get file extension
$ext = strtolower(pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION));
if (in_array($ext, $valid_exts)) {
/* resize image */
foreach ($sizes as $w => $h) {
$files[] = resize($w, $h);
}
} else {
$msg = 'Unsupported file';
}
} else{
$msg = 'Please upload image smaller than 1024KB';
}
}
date_default_timezone_set('Asia/Tehran');
function resize($width, $height){
/* Get original image x y*/
list($w, $h) = getimagesize($_FILES['image']['tmp_name']);
/* calculate new image size with ratio */
$ratio = max($width/$w, $height/$h);
$h = ceil($height / $ratio);
$x = ($w - $width / $ratio) / 2;
$w = ceil($width / $ratio);
/* new file name */
//$path = 'uploads/'.$width.'x'.$height.'_'.$_FILES['image']['name'].'_'.date('Y.n.j-G.i');
$path = '../../../../images/uploads/'.date('Y.n.j-G.i').'_'.$width.'x'.$height.'_'.$_FILES['image']['name'];
/* read binary data from image file */
$imgString = file_get_contents($_FILES['image']['tmp_name']);
/* create image from string */
$image = imagecreatefromstring($imgString);
$tmp = imagecreatetruecolor($width, $height);
imagecopyresampled($tmp, $image,
0, 0,
$x, 0,
$width, $height,
$w, $h);
/* Save image */
switch ($_FILES['image']['type']) {
case 'image/jpeg':
imagejpeg($tmp, $path, 100);
break;
case 'image/png':
imagepng($tmp, $path, 0);
break;
case 'image/gif':
imagegif($tmp, $path);
break;
default:
exit;
break;
}
return $path;
/* cleanup memory */
imagedestroy($image);
imagedestroy($tmp);
}
if(isset($files)){
foreach ($files as $image) {
//echo "<img class='img' src='{$image}' /><br /><br />";
$name_farsi=mysql_escape_string($_POST['name_farsi']);
$insert=mysql_query("INSERT INTO `download` (`file_name_persian` ,`image_min`, `image_max` ) VALUES ( '".$name_farsi."', '".$image."', '".$image."')");
}
}