美文网首页
七牛php-SDK

七牛php-SDK

作者: Julian1009 | 来源:发表于2017-03-24 17:10 被阅读0次

    七牛php-sdk

    安装

    composer require qiniu/php-sdk
    

    安装完成后,在获取token的过程中出现报错

    file_put_contents(/var/folders/sw/sf1dd9lj205cl3h8wz0121h00000gn/T/.qiniu_phpsdk_hostscache.json): failed to open stream: Permission denied

    一步步查看源码追踪,在文件 vendor/qiniu/php-sdk/src/Qiniu/Zone.php 的157行处,

    155.| private function hostCacheFilePath()
    156.| {
    157.|     return sys_get_temp_dir() . '/.qiniu_phpsdk_hostscache.json';
    158.| }
    

    由于 sys_get_atemp_dir()/var/folders/sw/sf1dd9lj205cl3h8wz0121h00000gn/T ,这个文件夹的权限很低没法写入。

    网上有解决办法是将157行改为,

    return __DIR__ . '/.qiniu_phpsdk_hostscache.json';
    

    当前目录权限还是够的,所以至此问题解决。

    但是文件生成路径更改之后会有什么结果尚不得知,看文件命名规则猜想应该是缓存 token 的文件。

    参考:七牛云存储PHP SDK报错Warning: file_put_contents

    Laravel 和 Vue.js 使用 Axios 通过 Put 请求上传文件

    碰到上传文件,后端获取不到数据的问题,和《Laravel 和 Vue.js 使用 Axios 通过 Put 请求上传文件》文中的问题一致,借鉴这篇文章解决问题的方法。

    这里记录一下最终成功的部分:

    Javascript 部分

    var form = new FormData();
    let file = e.dataTransfer.files[0];
    form.append("_method", 'put'); // 根据laravel文档
    form.append("file", file, file.name); // 文件对象
    axios.post('/upload', form).then((res) => {//根据服务器返回进行处理
      console.log('success', res)
    }).catch((error) => {
      console.error('error', error)
    });
    

    web.php 路由部分

    Route::put('/upload', 'HomeController@uploadFile');
    

    HomeController.php 路由部分

    public function dropUpload(Request $request){
      Log::alert($request->method().'进入Input');
      Log::alert($request);
      if($request->hasFile('file')){
          Log::alert('包含');
      }else{
          Log::alert('不含');
      }
    }
    

    laravel.log 部分

    [2017-05-09 18:46:26] local.ALERT: PUT进入Input
    [2017-05-09 18:46:26] local.ALERT: array (
      '_method' => 'put',
      'file' => 
      Illuminate\Http\UploadedFile::__set_state(array(
         'test' => false,
         'originalName' => 'cat-care_cat-nutrition-tips_overweight_body4_left.jpg',
         'mimeType' => 'image/jpeg',
         'size' => 145406,
         'error' => 0,
         'hashName' => NULL,
      )),
    )  
    [2017-05-09 18:46:26] local.ALERT: 包含

    相关文章

      网友评论

          本文标题:七牛php-SDK

          本文链接:https://www.haomeiwen.com/subject/piufottx.html