【问题标题】:Laravel 5.3 Amazon s3 upload issueLaravel 5.3 Amazon s3 上传问题
【发布时间】:2016-09-10 20:55:33
【问题描述】:

所以我最近一直在做一个项目,我在尝试将文件上传到 s3 时遇到了困难,我之前在以前的网站上做过这个,这很好,但这个似乎证明了一点棘手。

我正在尝试将通过表单发送的文件 (pdf) 上传到我在 s3 上的“horsebeach”存储桶中,单击表单上的提交后,页面就会冻结。

这是我的上传代码:

 $file = $request->file('attachment');
 $s3 = Storage::disk('s3');
 $s3->put($file->hashName(), file_get_contents($file));

在我的 EventController 中:

public function newEvent(Request $request){
      // in here
}

更改为本地存储工作正常,文件存储在我的应用存储中。

这是我的表格以防万一:

<form action="{{URL::to('events/new')}}" method="post" enctype="multipart/form-data">
    {{ csrf_field() }}
    <div class="form_inputs clearfix">
        <div class="row-fluid">
            <div class="span2">
                <label class="control-label">Event Title:</label>
            </div>
            <div class="span10">
                <input type="text" name="event-title" placeholder="Event Title" class="span11"/>
            </div>
        </div>
    </div>
    @if ($errors->has('event-title'))
    <span class="help-block">
        <strong>{{ $errors->first('event-title') }}</strong>
    </span>
    @endif
    <div class="form_inputs clearfix">
        <div class="row-fluid">
            <div class="span2">
                <label class="control-label">Begin Date:</label>
            </div>
            <div class="span2">
                <input type="text" name="begin-date" placeholder="e.g 27-02-2016" class="span11 dpicker">
            </div>
        </div>
    </div>
    @if ($errors->has('begin-date'))
    <span class="help-block">
        <strong>{{ $errors->first('begin-date') }}</strong>
    </span>
    @endif
    <div class="form_inputs clearfix">
        <div class="row-fluid">
            <div class="span2">
                <label class="control-label">End Date:</label>
            </div>
            <div class="span2">
                <input type="text" name="end-date" placeholder="e.g 27-02-2016" class="span11 dpicker">
            </div>
        </div>
    </div>
    @if ($errors->has('end-date'))
    <span class="help-block">
        <strong>{{ $errors->first('end-date') }}</strong>
    </span>
    @endif
    <div class="form_inputs clearfix">
        <div class="row-fluid">
            <div class="span2">
                <label class="control-label">Location:</label>
            </div>
            <div class="span10">
                <input type="text" name="location" placeholder="e.g Dave's house" class="span11"/>
            </div>
        </div>
    </div>
    @if ($errors->has('location'))
    <span class="help-block">
        <strong>{{ $errors->first('location') }}</strong>
    </span>
    @endif
    <div class="form_inputs clearfix">
        <div class="row-fluid">
            <div class="span2">
                <label class="control-label">Fee:</label>
            </div>
            <div class="span10">
                <div class="input-prepend">
                    <span class="add-on">£ </span> <input type="text" id='fee' name="fee" placeholder="2000" style="width: 87%">
                </div>
            </div>
        </div>
    </div>
    @if ($errors->has('fee'))
    <span class="help-block">
        <strong>{{ $errors->first('fee') }}</strong>
    </span>
    @endif
    <div class="form_inputs clearfix">
        <div class="row-fluid">
            <div class="span2">
                <label class="control-label">Colour:</label>
            </div>
            <div class="span10">
                <div class="input-prepend">
                    <input type="text" name="colour" placeholder="" id="color1" class="color1">
                </div>
            </div>
        </div>
    </div>
    @if ($errors->has('colour'))
    <span class="help-block">
        <strong>{{ $errors->first('colour') }}</strong>
    </span>
    @endif
    <div class="form_inputs clearfix">
        <div class="row-fluid">
            <div class="span2">
                <label class="control-label">Description:</label>
            </div>
            <div class="span10">
                <textarea rows="3" name="description" placeholder="What's going down?" class="span11 elastic"></textarea>
            </div>
        </div>
    </div>
    <div class="form_inputs clearfix">
        <div class="row-fluid">
            <div class="span2">
                <label class="control-label">Confirmed?</label>
            </div>
            <div class="span10">
                <input type="checkbox" name="confirmed" class="radio1">
            </div>
        </div>
    </div>
    <div class="form_inputs clearfix">
        <div class="row-fluid">
            <div class="span2">
                <label class="control-label">Attachments:</label>
            </div>
            <div class="span10">
                <input id="fileupload" type="file" name="attachment"/>
            </div>
        </div>
    </div>
    <div class="form_inputs">
        <input type="submit" name="create-event" value="Create Event" class="btn btn-info"/>
    </div>
</form>

配置文件:

    's3' => [
        'driver' => 's3',
        'key'    => env('AWS_KEY'),
        'secret' => env('AWS_SECRET'),
        'region' => env('AWS_LOCATION'),
        'bucket' => 'horsebeach',
    ],

composer.json:

"league/flysystem-aws-s3-v3": "~1.0"

【问题讨论】:

    标签: php laravel amazon-s3 laravel-5.3


    【解决方案1】:

    你确定要拉aws/aws-sdk-php-laravel吗?

    我的项目中安装了以下内容:

        "aws/aws-sdk-php-laravel": "^3.1",
        "graham-campbell/flysystem": "^3.0",
        "league/flysystem-aws-s3-v3":"~1.0",
    

    另外,关注你的storage/logs/laravel.log 看看发生了什么。

    【讨论】:

    • 感谢您的帮助,我的 composer.json 中有相同的要求。拖尾后,我注意到这个 '[2016-09-10 23:25:27] local.ERROR: exception 'Aws\S3\Exception\S3Exception' with message 'Error execution "ListObjects" on "s3.ireland.amazonaws.com/…"; AWS HTTP 错误:cURL 错误 7:无法连接到 s3.ireland.amazonaws.com 端口 443:操作超时(请参阅curl.haxx.se/libcurl/c/libcurl-errors.html)''
    • 超时错误,因此请验证您的.env中的密钥、秘密和区域是否正确
    • 好的,我明白了,真是愚蠢的错误。我将爱尔兰作为我的地区,然后我突然想到,该地区实际上是爱尔兰的 eu-west-1。现在一切正常。
    猜你喜欢
    • 2017-03-13
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    • 2017-06-21
    • 1970-01-01
    • 2016-09-04
    • 1970-01-01
    相关资源
    最近更新 更多