相关疑难解决方法(0)

PHP:获取文件扩展名不能上传到S3

我使用Amazon S3 API上传文件,每次上传时我都会更改文件名.

例如:

Dog.png> 3Sf5f.png

现在我得到了随机部分:

function rand_string( $length ) {
            $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";  

            $size = strlen( $chars );
            for( $i = 0; $i < $length; $i++ ) {
                $str .= $chars[ rand( 0, $size - 1 ) ];
            }

            return $str;
        }   
Run Code Online (Sandbox Code Playgroud)

所以我将random_string设置为name参数:

$params->key = rand_string(5);
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,这不会显示任何扩展.所以文件将上传3Sf5f而不是3Sf5f.png.

变量$ filename为我提供了文件的全名及其扩展名.

如果我使用$params->key = rand_string(5).'${filename}';我得到:

3Sf5fDog.png
Run Code Online (Sandbox Code Playgroud)

所以我试图检索$ filename扩展并应用它.我尝试了30多种方法而没有任何积极的方法.

例如,我尝试了$ path_info(),我尝试了substr(strrchr($ file_name,'.'),1); 还有更多.所有这些都给了我3Sf5fDog.png或者只是3Sf5f.

我试过的一个例子:

// As @jcinacio pointed out. Change this to: …
Run Code Online (Sandbox Code Playgroud)

php file-extension file-upload amazon-s3

9
推荐指数
2
解决办法
2100
查看次数

标签 统计

amazon-s3 ×1

file-extension ×1

file-upload ×1

php ×1