当用户选择文件时,服务器端文件扩展名将被删除或重命名,并使用php codeigniter库将其上传到服务器
答案 0 :(得分:0)
这应删除您的文件扩展名
<?php
$var = "testfile.php";
$explode = explode( '.', $var );
array_pop( $explode);
$var = implode( '.', $explode );
var_dump( $var );
至于上传,您需要阅读文件上传手册
http://www.codeigniter.com/user_guide/libraries/file_uploading.html
答案 1 :(得分:0)
文件名:
$your_given_name = time().rand().$_FILES["userfiles"]['name'];
$config['file_name'] = $your_given_name;
更改扩展程序,您可以使用:
if ($this->upload->do_upload('file_name')) {
$file_data=$this->upload->data();
$new_name_by_you='anything'.$file_data['file_ext'];
$new_path=$file_data['file_path'].$new_name_by_you;
rename($file_data['full_path'], $new_path);
}
rename()是一个内置的php函数。有关详细信息,请访问http://php.net/manual/en/function.rename.php
答案 2 :(得分:0)
我最近遇到了同样的问题,发现它真的很烦人,即使你在代码点火器中指定了一个file_name,它也会附加文件扩展名。我不想要的。
Blinkydamo的链接没有帮助,因为这是我首先关注的链接,并没有提到这种困境,尽管它确实通过代码点火器无法正确地进行 - 通过省略答案。我还没有尝试过使用asd rahman的方法,但它看起来很合理。
或者你可以忘记使用Code Igniter的上传功能,然后再回到PHP标准版上,这就是我所做的:
move_uploaded_file($_FILES['imageFile']['tmp_name'], '/path/'.$filename);
其中$ filename是包含扩展名的文件的确切名称,因此如果没有指定 - 它就没有。
答案 3 :(得分:0)
这很容易
更改代码 库/ upload.php的
public function set_filename($path, $filename)
{
if ($this->encrypt_name === TRUE)
{
$filename = md5(uniqid(mt_rand()));
}
if ($this->overwrite === TRUE OR ! file_exists($path.$filename))
{
return $filename;
}
$filename = str_replace($this->file_ext, '', $filename);
$new_filename = '';
for ($i = 1; $i < $this->max_filename_increment; $i++)
{
if ( ! file_exists($path.$filename.$i))
{
$new_filename = $filename.$i;
break;
}
}
if ($new_filename === '')
{
$this->set_error('upload_bad_filename', 'debug');
return FALSE;
}
else
{
return $new_filename;
}
}