上传文件重命名

时间:2010-09-01 04:03:20

标签: php jquery mysql

我正在使用适用于PHP的Uploadify jQuery插件上传文件。我坚持的一件事是,我需要能够重命名正在上传的文件,以便我可以将该信息发布到我的脚本,将数据插入到mysql数据库中。任何人都可以建议如何做到这一点?

谢谢, 杰克

4 个答案:

答案 0 :(得分:1)

你可以这样做: -

$targetFolder =  FCPATH.'/resources/images/users/temp/'; // Relative to the root
    if (!empty($image)) 
    {
        $time=strtotime("now");
        $image['Filedata']['name']=$time.'.jpg';
        $tempFile = $image['Filedata']['tmp_name'];
        $targetPath = $targetFolder.$image['Filedata']['name'];

        // Validate the file type
        $fileTypes = array('jpg','jpeg','gif','png'); // File extensions
        $fileParts = pathinfo($image['Filedata']['name']);

        if (in_array($fileParts['extension'],$fileTypes)) 
        {
            move_uploaded_file($tempFile,$targetPath);
            echo '1';
        } 
        else 
        {
            echo 'Invalid file type.';
        }
    }

答案 1 :(得分:1)

首先在uploadify.php中重命名文件名

然后你只需要从uploadify.php文件中返回$ targetPath,就像这样 -

echo $targetPath

无需使用echo'1'

现在你必须得到重命名的文件名。你可以在onUploadSuccess函数中得到它。 onUploadSuccess()接受三个参数(文件,数据,响应),

其中file为您提供通过计算机浏览的文件的实际名称,数据为您提供根据您的要求通过uploadify.php代码生成的重命名文件名。

所以你可以试试下面的代码 -

'onUploadSuccess' : function(file, data, response) {
        alert('Renamed file name is - ' + data);
    }

我希望这会有所帮助。我的一位朋友告诉我这件事,然后我完成了我的工作:)

答案 2 :(得分:0)

如果您使用uploadify.php,请在函数move_uploaded_files之前,然后更改目标名称。

无论如何你这样做应该有用。如果您想要更详细的答案,请发布您的代码。

答案 3 :(得分:0)

This will put file in new folder with same file name as source file

$source   = $_FILES['Filedata']['tmp_name'];
$filename = $_FILES['Filedata']['name'];
$newPath = $folder.'/'.$filename;
rename($source, $newPath);

/*----------------------*/

to have a new filename
    function getExtension($path)
    {
        $result = substr(strtolower(strrchr($path, '.')), 1);
        $result = preg_replace('/^([a-zA-Z]+)[^a-zA-Z].*/', '$1', $result);
        if ($result === 'jpeg' || empty($result) === true) {
            $result = 'jpg';
        }
        return $result;
    }

$source   = $_FILES['Filedata']['tmp_name'];
$filename = $_FILES['Filedata']['name'];
$newfileName=$folder."/"."abc".getExtension($filename);
rename($source, $newfileName);