简单上传适用于将本地文件(服务器上的文件)直接上传到七牛云存储。
- 参数一:要上传的本地文件(文件路径)
- 参数二:要存储为的文件名(如果让七牛设置可将此参数置为空)
- 参数三:要上传到的空间名(为空时表示使用默认的Bucket)
- 参数四:是否使用自定义的上传策略(默认为否,适用于默认的上传策略不能满足要求时)
- 参数五:上传执行的有效期(默认为7200秒)
$ret = $qiniu->upload->upload('abc.jpg', 'newfilename.jpg');
print_r($ret->data);
/*
使用默认上传策略的情况下会在上传成功后返回被保存文件的文件名和HASH值
data=array (
["hash"]=>
"FoZt6eX5BQno33iokM9_Diq30Mhj"
["key"]=>
"newfilename.jpg"
)
*/
字符串上传适用于保存一个字符串到七牛,如设置、用户提交的文本等
- 参数一:要上传的字符串
- 参数二:要存储为的文件名(如果让七牛设置可将此参数置为空)
- 参数三:要上传到的空间名(为空时表示使用默认的Bucket)
- 参数四:是否使用自定义的上传策略(默认为否,适用于默认的上传策略不能满足要求时)
- 参数五:上传执行的有效期(默认为7200秒)
$string = "This is my test string";
$ret = $qiniu->upload->upload_string($string, 'mytestfile.txt');
print_r($ret->data);
使用上传策略来控制具体的上传行为以及上传完成后服务器如何操作(详见七牛官方文档上传策略)。上传策略类并没有做过多的封装,目的就是提供一种可用于自定义所有上传细节的类。
上传策略类根据官网中有说明的每一个策略分别创建一个常量,使用这些常量可以避免传值过程中的拼写错误,如果需要使用这些常量的话您需要在调用上传策略类前初始化它:
$qiniu->put_policy->init();
可以单独设置某一个上传策略,或者通过数组的形式批量设置它们,支持链式操作:
//使用链式操作设置所需的策略
$qiniu->put_policy->set_policy(Qiniu_put_policy::QINIU_PP_SCOPE, '<bucket>:<key>')
->set_policy(Qiniu_put_policy::QINIU_PP_DEADLINE, time() + 7200)
->set_policy(Qiniu_put_policy::QINIU_PP_SAVE_KEY, 'newFileName.jpg');
//使用批量设置
$arr = array(
Qiniu_put_policy::QINIU_PP_SCOPE => '<bucket>:<key>',
Qiniu_put_policy::QINIU_PP_DEADLINE => time()+7200,
Qiniu_put_policy::QINIU_PP_SAVE_KEY => 'newFileName.jpg'
);
$qiniu->put_policy->set_policy_array($arr);
设置好上传策略后可以使用get_token()
函数生成基于刚才设置的策略的Token:
$token = $qiniu->put_policy->get_token();
当然,获取上传Token的意义肯定还在于表单上传:
<form method="post" action="http://upload.qiniu.com/" enctype="multipart/form-data">
<input name="token" type="hidden" value="<?php echo $token;?>">
<input name="file" type="file" />
<input type="submit" />
</form>