10/10/2018, 11:31
Hỏi về Upload PHP Duplicate va khoảng trắng
Tinh hình là mình có 1 đoạn upload php bên dưới, mình cũng chỉ mới học php thôi nên chỉ làm thêm phần Thump , Nhưng hiện tại còn 2 vấn đề mình chưa giải quyết được là khi up 2 file cùng tên thì nó sẽ xoá file cũ đè lên file mới . Mình đang tìm cách làm sao khi có file trùng lập thì nó sẽ có thêm số 1 2 3 ... phía sau. Và vấn đề thứ 2 là mình muốn xoá khoảng trắng của filename. Ví dụ nếu là "Picture 113" thì $_FILE['file'] sẽ là "Picture113"
Code hiện tại của mình
[/code]
<?php
$arrExt = array('jpg','gif','png');
// Ham tra ve dinh dang file getExt('mypicture.jpg') -> jpg
function getExt($filename){
return $ext = strtolower(substr(strrchr($filename, '.'), 1));
}
?>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="file" size="12"><br /><br /><input type="submit" value="Upload">
</form><br />
<?php
if($_FILES['file']){
$dir = ';
$thumb = $dir.'thumbs/';
$w = '100';
$h = '200';
$ext = getExt($_FILES['file']['name']);
if(in_array($ext, $arrExt)){
if(move_uploaded_file($_FILES['file']['tmp_name'], $dir.$_FILES['file']['name'])){
list($width, $height) = getimagesize($dir.$_FILES['file']['name']);
$image_p = imagecreatetruecolor($w, $h);
//
switch($ext){
case "jpg":
$image = imagecreatefromjpeg($dir.$_FILES['file']['name']);
break;
case "gif":
$image = imagecreatefromgif($dir.$_FILES['file']['name']);
break;
case "png":
$image = imagecreatefrompng($dir.$_FILES['file']['name']);
break;
default :
$image = imagecreatefromjpeg($dir.$_FILES['file']['name']);
break;
}
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $w, $h, $width, $height);
// Output & save to file
$thumb_file = 'thumb_'.$_FILES['file']['name'];
$tmp_content = imagejpeg($image_p, $thumb.$thumb_file, 100);[/code]
Code hiện tại của mình
[/code]
<?php
$arrExt = array('jpg','gif','png');
// Ham tra ve dinh dang file getExt('mypicture.jpg') -> jpg
function getExt($filename){
return $ext = strtolower(substr(strrchr($filename, '.'), 1));
}
?>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="file" size="12"><br /><br /><input type="submit" value="Upload">
</form><br />
<?php
if($_FILES['file']){
$dir = ';
$thumb = $dir.'thumbs/';
$w = '100';
$h = '200';
$ext = getExt($_FILES['file']['name']);
if(in_array($ext, $arrExt)){
if(move_uploaded_file($_FILES['file']['tmp_name'], $dir.$_FILES['file']['name'])){
list($width, $height) = getimagesize($dir.$_FILES['file']['name']);
$image_p = imagecreatetruecolor($w, $h);
//
switch($ext){
case "jpg":
$image = imagecreatefromjpeg($dir.$_FILES['file']['name']);
break;
case "gif":
$image = imagecreatefromgif($dir.$_FILES['file']['name']);
break;
case "png":
$image = imagecreatefrompng($dir.$_FILES['file']['name']);
break;
default :
$image = imagecreatefromjpeg($dir.$_FILES['file']['name']);
break;
}
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $w, $h, $width, $height);
// Output & save to file
$thumb_file = 'thumb_'.$_FILES['file']['name'];
$tmp_content = imagejpeg($image_p, $thumb.$thumb_file, 100);[/code]
Bài liên quan
2) cắt bỏ khoảng trắng bằng hàm: mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
Cụ thể preg_replace(" ","",$subject)
[=========> Bổ sung bài viết <=========]
1. Một là sau khi move_upload_file() thì tạo một file thumbnail luôn cho file đó. Đặt tên có prefix để truy xuất cho dễ. Ví dụ file gốc up lên là uploads/qwertyuuio28318iasdnasnido.jpg thì file thumbnail sẽ là uploads/thumb_qwertyuuio28318iasdnasnido.jpg; Object này sẽ giúp bạn tạo thumbnail cho ảnh mà không cần biết về các hàm xử lý ảnh của php http://www.white-hat-web-design.co.u...e-resizing.php
2. Hai là request đến đâu thì tạo thumbnail đến đó. Cách này nhanh hơn nhưng nặng server. Tiện cho ai lười, làm việc cần tốc độ hơn là performance. Sử dụng object này cho nhanh: http://shiftingpixel.com/2008/03/03/...image-resizer/