PHP上传isset并重命名文件,如果它存在 [英] php upload isset and rename file if it's exist
问题描述
我知道,这个问题有很多解决方案,但不幸的是我无法解决这个问题,下面是我的上传代码:
<$ c ($ amp; $ file,$ destinationDir =,$ destinationName =,$ secure = true)
{
$ ret = false;
if(isset($ file ['tmp_name'])&& isset($ file ['name']))
{
if($ destinationName == '')
{
$ destinationName = $ file ['name'];
}
$ destinationFile = $ destinationDir。 '/'。 $ destinationName;
$ b $ if(move_uploaded_file($ file ['tmp_name'],$ destinationFile))
{
if($ secure)
{
chmod($ destinationFile,0644); //没有执行权限,如果可能的话
$ ret = true;
}
}
return $ ret;
$ / code>
1:如何在上传到服务器时重命名文件?
2:如果文件名是存在的话怎么自动重命名?
提前致谢 $ b $对于这种情况,使用 file_exists :
code> public static function upload(& $ file,$ destinationDir =,$ destinationName =,$ secure = true){
$ ret = false;
$ b $ if(isset($ file ['tmp_name'])&& isset($ file ['name'])){
if($ destinationName ==''){
$ destinationName = md5($ file ['name']);
}
$ destinationFile = $ destinationDir。'/'。$ destinationName;
if(file_exists($ destinationFile)){
//改变目标文件名(如果存在的话)
$ destinationFile = $ destinationDir。'/'。md5($ destinationName。兰特());
$ b $ if(move_uploaded_file($ file ['tmp_name'],$ destinationFile)){
if($ secure){
chmod($ destinationFile,0644 ); //没有执行权限,如果可能的话
$ ret = true;
}
}
注意: />
move_uploaded_file - 将上传的文件移动到新的位置
像这样构造
$ move $ upload $字符串$ filename,字符串$目的地)
in $ destination
参数你给你新的上传文件的名称。将文件命名为独特的东西。无论如何,所以不要担心这个
I know, there are many solutions for this question, but unfortunately I couldn't solve it, Here is my upload code:
public static function upload(&$file, $destinationDir = "", $destinationName = "", $secure = true)
{
$ret = false;
if (isset($file['tmp_name']) && isset($file['name']))
{
if ($destinationName == '')
{
$destinationName = $file['name'];
}
$destinationFile = $destinationDir . '/' . $destinationName;
if (move_uploaded_file($file['tmp_name'], $destinationFile))
{
if ($secure)
{
chmod($destinationFile, 0644); // without execution permissions if it is possible
}
$ret = true;
}
}
return $ret;
}
1: How can I rename file while uploading to server ?
2: If file name is exist then how to rename it automatically?
Thanks in advance
Use file_exists for this case :
public static function upload(&$file, $destinationDir = "", $destinationName = "", $secure = true){
$ret = false;
if(isset($file['tmp_name']) && isset($file['name'])){
if ($destinationName == ''){
$destinationName = md5($file['name']);
}
$destinationFile = $destinationDir.'/'.$destinationName;
if(file_exists($destinationFile)){
// Change the destination file name if it exists
$destinationFile = $destinationDir.'/'.md5($destinationName.rand());
}
if (move_uploaded_file($file['tmp_name'], $destinationFile)){
if($secure){
chmod($destinationFile, 0644); // without execution permissions if it is possible
}
$ret = true;
}
}
Note:
move_uploaded_file — Moves an uploaded file to a new location
structured like this
bool move_uploaded_file ( string $filename , string $destination )
in $destination
parameter you give the name of your new uploaded file. Name your file to something that unique. Whatever !, so don't worry about this
这篇关于PHP上传isset并重命名文件,如果它存在的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!