09/10/2018, 23:40
đổi tên file upload trong PHP
Mình dùng cách sau để upload file :
$varFileName=$_FILES['file_upload']['name'];
$varSize=$_FILES['file_upload']['size'];
$varTemp=$_FILES['file_upload']['tmp_name'];
$varType=$_FILES['file_upload']['type'];
$varExt=$FILES['file_upload']['Extend'];
$varUploadDir="Images/";
$varUploadFile=$varUploadDir.$varFileName;
if(!move_uploaded_file($varTemp,$varUploadFile))
$varStrError="Upload file bi loi!";
else
print "Upload file thanh cong !";
Vấn đề của mình là mình muốn kiểm tra phần mở rộng của file(VD : mình chỉ cho phép upload những file có đuôi là *.jpg, *.gif), và mình muốn đổi lại tên file này khi người dùng upload lên server (do có thể có nhiều người dùng upload khác file nhưng lại trùng tên khi đó file upload sau sẽ thay thế file upload trước).
Mong các bạn giúp mình với, xin cảm ơn rất nhiều !
$varFileName=$_FILES['file_upload']['name'];
$varSize=$_FILES['file_upload']['size'];
$varTemp=$_FILES['file_upload']['tmp_name'];
$varType=$_FILES['file_upload']['type'];
$varExt=$FILES['file_upload']['Extend'];
$varUploadDir="Images/";
$varUploadFile=$varUploadDir.$varFileName;
if(!move_uploaded_file($varTemp,$varUploadFile))
$varStrError="Upload file bi loi!";
else
print "Upload file thanh cong !";
Vấn đề của mình là mình muốn kiểm tra phần mở rộng của file(VD : mình chỉ cho phép upload những file có đuôi là *.jpg, *.gif), và mình muốn đổi lại tên file này khi người dùng upload lên server (do có thể có nhiều người dùng upload khác file nhưng lại trùng tên khi đó file upload sau sẽ thay thế file upload trước).
Mong các bạn giúp mình với, xin cảm ơn rất nhiều !
Bài liên quan
substr($filename,strpos($filename,'.')+1);
Các tham số: $filename, $upload_type
$filename ='abc.jpg';
$upload_type = ',jpg,jpeg,gif,png,';
function check_file_type($filename,$upload_type){
$start = strrpos($filename,".");
if ($start == strlen($filename)) return false;
$user_type = strtolower(substr($filename,$start+1));
$allow_type = explode(',',$upload_type);
reset ($allow_type);
while (list(,$val)=each($allow_type)){
if ($val == $user_type) return true;
}
return false;
}
if (strstr('.', $file_name))
$file_ext = preg_match('#.*\.(***91;^\.***93;*)$#', "\\1", $file_name);
else
$file_ext = '';
<?php
$path_parts = pathinfo('/www/htdocs/index.html');
echo $path_parts***91;'dirname'***93;, "\n";
echo $path_parts***91;'basename'***93;, "\n";
echo $path_parts***91;'extension'***93;, "\n";
?>
Chi cho nhức đầu vậy bạn
for ($i = strlen($filename) ; $i >= 1 ; $i--) {
if ( ($filename***91;$i***93; == ".") && ($i >= strlen($filename)-5) ) {
$file_ext = substr($filename,$i+1);
break;
}
elseif ($i <= strlen($filename)-5) {
$file_ext = '';
break;
}
}
Đây là 1 cách, chú ý strrpos chứ ko phải strpos.
substr($filename,strrpos($filename,'.')+1);