开发者社区> 问答> 正文

用户下载文件时,如何使用其他文件名?

为了保证文件的唯一性和安全性,文件名全部sha1加密过了。但是这样用户下载文件时,文件名就会是一堆字母数字(如:651a53c4ea021589c00e26b5d0d50b96dfafb2d7.doc)。想让用户下载的文件是原名(如:介绍文档.doc),请问能如何做到?感谢感谢!

展开
收起
周伯通 2013-07-18 18:15:35 12771 0
5 条回答
写回答
取消 提交回答
  • 回 4楼(懂懂) 的帖子
    可以啊,

    请参考新的PHP SDK
    https://help.aliyun.com/document_detail/oss/sdk/php-sdk/manage_object.html

    修改文件元信息(Object Meta)

    可以通过拷贝操作来实现修改已有文件元信息。如果拷贝操作的源文件地址和目标文件地址相同,都会直接替换源文件的文件元信息。

    /**
    * 修改文件元信息
    * 利用copyObject接口的特性:当目的object和源object完全相同时,表示修改object的文件元信息
    *
    * @param OssClient $ossClient OSSClient实例
    * @param string $bucket 存储空间名称
    * @return null
    */
    function modifyMetaForObject($ossClient, $bucket)
    {
        $fromBucket = $bucket;
        $fromObject = "oss-php-sdk-test/upload-test-object-name.txt";
        $toBucket = $bucket;
        $toObject = $fromObject;
        $copyOptions = array(
            OssClient::OSS_HEADERS => array(
                'Expires' => '2012-10-01 08:00:00',
                'Content-Disposition' => 'attachment; filename="xxxxxx"',
            ),
        );
        try{
            $ossClient->copyObject($fromBucket, $fromObject, $toBucket, $toObject, $copyOptions);
        } catch(OssException $e) {
            printf(__FUNCTION__ . ": FAILED\n");
            printf($e->getMessage() . "\n");
            return;
        }
        print(__FUNCTION__ . ": OK" . "\n");
    }
    2015-12-15 17:55:12
    赞同 展开评论 打赏
  • 回 2楼周伯通的帖子
    已经上传的文件能不能设置header的Content-Disposition
    2015-12-15 17:49:17
    赞同 展开评论 打赏
  • Re用户下载文件时,如何使用其他文件名?
    你问我我问谁去
    2013-07-20 10:17:01
    赞同 展开评论 打赏
  • 回1楼aircrow的帖子
    多谢哥们提示,搞定啦!也写一下解决方法给有需要的同志:上传文件至OSS时设置header的Content-Disposition,如PHP代码:

    $options[ALIOSS::OSS_HEADERS] = array(
        ALIOSS::OSS_CONTENT_DISPOSTION => "attachment;filename=\"{$download_name}\"",
    );
    2013-07-19 14:25:35
    赞同 展开评论 打赏
  • Re用户下载文件时,如何使用其他文件名?
    通过添加http头标志可以达到。
    2013-07-18 22:01:01
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
附件下载测试 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载